(unless frame
(setq frame (selected-frame)))
(let ((tail spec)
- result all)
+ result defaults)
(while tail
(let* ((entry (pop tail))
(display (car entry))
- (attrs (cdr entry)))
- (when (face-spec-set-match-display display frame)
- (setq result (if (null (cdr attrs)) ;; was (listp (car attrs))
- ;; Old-style entry, the attribute list is the
- ;; first element.
- (car attrs)
- attrs))
- (if (eq display t)
- (setq all result result nil)
+ (attrs (cdr entry))
+ thisval)
+ ;; Get the attributes as actually specified by this alternative.
+ (setq thisval
+ (if (null (cdr attrs)) ;; was (listp (car attrs))
+ ;; Old-style entry, the attribute list is the
+ ;; first element.
+ (car attrs)
+ attrs))
+
+ ;; If the condition is `default', that sets the default
+ ;; for following conditions.
+ (if (eq display 'default)
+ (setq defaults thisval)
+ ;; Otherwise, if it matches, use it.
+ (when (face-spec-set-match-display display frame)
+ (setq result thisval)
(setq tail nil)))))
- (if all (append result all) result)))
+ (if defaults (append result defaults) result)))
(defun face-spec-reset-face (face &optional frame)
:group 'basic-faces)
(defface mode-line-inactive
- '((t
+ '((default
:inherit mode-line)
(((type x w32 mac) (background light) (class color))
:weight light
(put 'modeline-inactive 'face-alias 'mode-line-inactive)
(defface header-line
- '((t
+ '((default
:inherit mode-line)
(((type tty))
;; This used to be `:inverse-video t', but that doesn't look very
(defface tool-bar
- '((t
+ '((default
:box (:line-width 1 :style released-button)
:foreground "black")
(((type x w32 mac) (class color))