aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/faces.el
diff options
context:
space:
mode:
authorGlenn Morris <[email protected]>2011-02-07 20:10:15 -0800
committerGlenn Morris <[email protected]>2011-02-07 20:10:15 -0800
commit8a6f24e5f283563fc25a8bc088d314034699f286 (patch)
treebe2f810e214c35de4e80a5a9c466c264fd4f942c /lisp/faces.el
parent3caced0bc3b0db2265e053812aba317673bd7c95 (diff)
faces.el fix for bug#7966.
* lisp/faces.el (face-attr-match-p): Handle the obsolete :bold and :italic props, so that frame-set-background-mode works. (Otherwise such faces were always thought to be locally modified.)
Diffstat (limited to 'lisp/faces.el')
-rw-r--r--lisp/faces.el20
1 files changed, 16 insertions, 4 deletions
diff --git a/lisp/faces.el b/lisp/faces.el
index 4a4acefa04..cc1847a216 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1605,13 +1605,25 @@ Optional parameter FRAME is the frame whose definition of FACE
is used. If nil or omitted, use the selected frame."
(unless frame
(setq frame (selected-frame)))
- (let ((list face-attribute-name-alist)
- (match t))
+ (let* ((list face-attribute-name-alist)
+ (match t)
+ (bold (and (plist-member attrs :bold)
+ (not (plist-member attrs :weight))))
+ (italic (and (plist-member attrs :italic)
+ (not (plist-member attrs :slant))))
+ (plist (if (or bold italic)
+ (copy-sequence attrs)
+ attrs)))
+ ;; Handle the Emacs 20 :bold and :italic properties.
+ (if bold
+ (plist-put plist :weight (if bold 'bold 'normal)))
+ (if italic
+ (plist-put plist :slant (if italic 'italic 'normal)))
(while (and match (not (null list)))
(let* ((attr (car (car list)))
(specified-value
- (if (plist-member attrs attr)
- (plist-get attrs attr)
+ (if (plist-member plist attr)
+ (plist-get plist attr)
'unspecified))
(value-now (face-attribute face attr frame)))
(setq match (equal specified-value value-now))