]> code.delx.au - gnu-emacs/blobdiff - lisp/cus-face.el
Merge from emacs--devo--0
[gnu-emacs] / lisp / cus-face.el
index be88b499fef4e300135c51ff0a9529d7966e9fd1..900a815b1607592adf38946743ea840daf4c1e40 100644 (file)
     (when (fboundp 'facep)
       (unless (facep face)
        ;; If the user has already created the face, respect that.
-       (let ((value (or (get face 'saved-face) spec)))
+       (let ((value (or (get face 'saved-face) spec))
+             (have-window-system (memq initial-window-system '(x w32))))
          ;; Create global face.
          (make-empty-face face)
          ;; Create frame-local faces
          (dolist (frame (frame-list))
-           (face-spec-set face value frame)))
-       ;; When making a face after frames already exist
-       (if (memq window-system '(x w32 mac))
-           (make-face-x-resource-internal face))))
+           (face-spec-set face value frame)
+           (when (memq (window-system frame) '(x w32 mac))
+             (setq have-window-system t)))
+         ;; When making a face after frames already exist
+         (if have-window-system
+             (make-face-x-resource-internal face)))))
     ;; Don't record SPEC until we see it causes no errors.
     (put face 'face-defface-spec spec)
     (push (cons 'defface face) current-load-list)