(autoload 'xw-defined-colors "x-win"))
(defvar help-xref-stack-item)
-
\f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Font selection.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defvar inhibit-face-set-after-frame-default nil
+ "If non-nil, that tells `face-set-after-frame-default' to do nothing.")
+
(defun set-face-attribute (face frame &rest args)
"Set attributes of FACE on FRAME from ARGS.
(if (memq where '(0 t))
(put (or (get face 'face-alias) face) 'face-modified t))
(while args
- (internal-set-lisp-face-attribute face (car args)
- (purecopy (cadr args))
- where)
+ ;; Don't recursively set the attributes from the frame's font param
+ ;; when we update the frame's font param fro the attributes.
+ (let ((inhibit-face-set-after-frame-default t))
+ (internal-set-lisp-face-attribute face (car args)
+ (purecopy (cadr args))
+ where))
(setq args (cdr (cdr args))))))
(delete-frame frame)))
frame))
-
(defun face-set-after-frame-default (frame)
"Set frame-local faces of FRAME from face specs and resources.
Initialize colors of certain faces from frame parameters."
- (if (face-attribute 'default :font t)
- (set-face-attribute 'default frame :font
- (face-attribute 'default :font t))
- (set-face-attribute 'default frame :family
- (face-attribute 'default :family t))
- (set-face-attribute 'default frame :height
- (face-attribute 'default :height t))
- (set-face-attribute 'default frame :slant
- (face-attribute 'default :slant t))
- (set-face-attribute 'default frame :weight
- (face-attribute 'default :weight t))
- (set-face-attribute 'default frame :width
- (face-attribute 'default :width t)))
+ (unless inhibit-face-set-after-frame-default
+ (if (face-attribute 'default :font t)
+ (set-face-attribute 'default frame :font
+ (face-attribute 'default :font t))
+ (set-face-attribute 'default frame :family
+ (face-attribute 'default :family t))
+ (set-face-attribute 'default frame :height
+ (face-attribute 'default :height t))
+ (set-face-attribute 'default frame :slant
+ (face-attribute 'default :slant t))
+ (set-face-attribute 'default frame :weight
+ (face-attribute 'default :weight t))
+ (set-face-attribute 'default frame :width
+ (face-attribute 'default :width t))))
(dolist (face (face-list))
;; Don't let frame creation fail because of an invalid face spec.
(condition-case ()