If the optional argument FRAME is given, report on face FACE in that frame.
If FRAME is t, report on the defaults for face FACE (for new frames).
If FRAME is omitted or nil, use the selected frame."
- (internal-get-lisp-face-attribute face :foreground frame))
+ (let ((value (internal-get-lisp-face-attribute face :foreground frame)))
+ (if (eq value 'unspecified)
+ nil
+ value)))
(defun face-background (face &optional frame)
If the optional argument FRAME is given, report on face FACE in that frame.
If FRAME is t, report on the defaults for face FACE (for new frames).
If FRAME is omitted or nil, use the selected frame."
- (internal-get-lisp-face-attribute face :background frame))
+ (let ((value (internal-get-lisp-face-attribute face :background frame)))
+ (if (eq value 'unspecified)
+ nil
+ value)))
(defun face-stipple (face &optional frame)
If the optional argument FRAME is given, report on face FACE in that frame.
If FRAME is t, report on the defaults for face FACE (for new frames).
If FRAME is omitted or nil, use the selected frame."
- (internal-get-lisp-face-attribute face :stipple frame))
+ (let ((value (internal-get-lisp-face-attribute face :stipple frame)))
+ (if (eq value 'unspecified)
+ nil
+ value)))
(defalias 'face-background-pixmap 'face-stipple)
(scroll-bar-foreground scroll-bar :foreground)
(scroll-bar-background scroll-bar :background)
(mouse-color mouse :background))))
- (while params
- (let ((param-name (nth 0 (car params)))
- (face (nth 1 (car params)))
- (attr (nth 2 (car params)))
- value)
- (when (setq value (frame-parameter frame param-name))
- (set-face-attribute face frame attr value)))
- (setq params (cdr params)))))
+ (dolist (param params)
+ (let ((frame-param (frame-parameter frame (nth 0 param)))
+ (face (nth 1 param))
+ (attr (nth 2 param)))
+ (when (and frame-param
+ ;; Don't override face attributes explicitly
+ ;; specified for new frames.
+ (eq (face-attribute face attr t) 'unspecified))
+ (set-face-attribute face frame attr frame-param))))))
+
(defun tty-handle-reverse-video (frame parameters)
"Handle the reverse-video frame parameter for terminal frames."