]> code.delx.au - gnu-emacs/blobdiff - lisp/cus-face.el
Merged from miles@gnu.org--gnu-2005 (patch 469)
[gnu-emacs] / lisp / cus-face.el
index 6eaaf97288d42c7824f91d900c47f2c7f630d46b..74162c68eb2242980b27f5c5d8e604eb69ac585f 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))
-           (make-face-x-resource-internal face))))
+           (face-spec-set face value frame)
+           (when (memq (window-system frame) '(x w32))
+             (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)