emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 23.0.50; face-problems with multy-tty


From: Glenn Morris
Subject: Re: 23.0.50; face-problems with multy-tty
Date: Mon, 08 Oct 2007 21:19:31 -0400
User-agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/)

Richard Stallman wrote:

>     I also don't really know what "this" is, but I posted 5 days ago
>     ("recent faces.el change", no responses) that face-spec-set with no
>     FRAME argument no longer sets the default for new frames. This is due
>     to your 2007-09-17 change to faces.el. Isn't that just a bug?
>
> Maybe it is.  I ought to investigate it but I have not had time.


How about this:


diff -c -c -w -r1.377 faces.el
*** faces.el    21 Sep 2007 07:23:03 -0000      1.377
--- faces.el    9 Oct 2007 01:18:28 -0000
***************
*** 1444,1455 ****
  (defun face-spec-set (face spec &optional frame)
    "Set FACE's attributes according to the first matching entry in SPEC.
  FRAME is the frame whose frame-local face is set.  FRAME nil means
! do it on all frames.  See `defface' for information about SPEC.
! If SPEC is nil, do nothing."
!   (if frame
        (let ((attrs (face-spec-choose spec frame)))
        (when spec
!         (face-spec-reset-face face frame))
        (while attrs
          (let ((attribute (car attrs))
                (value (car (cdr attrs))))
--- 1444,1454 ----
  (defun face-spec-set (face spec &optional frame)
    "Set FACE's attributes according to the first matching entry in SPEC.
  FRAME is the frame whose frame-local face is set.  FRAME nil means
! do it on all frames (and change the default for new frames).
! See `defface' for information about SPEC.  If SPEC is nil, do nothing."
    (let ((attrs (face-spec-choose spec frame)))
      (when spec
!       (face-spec-reset-face face (or frame t)))
      (while attrs
        (let ((attribute (car attrs))
            (value (car (cdr attrs))))
***************
*** 1464,1471 ****
              (t (unless (assq attribute face-x-resources)
                   (setq attribute nil))))
            (when attribute
!             (set-face-attribute face frame attribute value)))
          (setq attrs (cdr (cdr attrs)))))
      ;; When we reset the face based on its spec, then it is unmodified
      ;; as far as Custom is concerned.
      (put (or (get face 'face-alias) face) 'face-modified nil)
--- 1463,1473 ----
              (t (unless (assq attribute face-x-resources)
                   (setq attribute nil))))
        (when attribute
!         ;; If frame is nil, set the default for new frames.
!         ;; Existing frames are handled below.
!         (set-face-attribute face (or frame t) attribute value)))
        (setq attrs (cdr (cdr attrs)))))
+   (unless frame
      ;; When we reset the face based on its spec, then it is unmodified
      ;; as far as Custom is concerned.
      (put (or (get face 'face-alias) face) 'face-modified nil)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]