emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-24 20c817d: Fix handling of frame color parameters i


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-24 20c817d: Fix handling of frame color parameters in TTY sessions (Bug#19802)
Date: Sun, 08 Feb 2015 16:19:56 +0000

branch: emacs-24
commit 20c817d3657ec67792edafd75f34d829144e8590
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix handling of frame color parameters in TTY sessions  (Bug#19802)
    
     src/xfaces.c (map_tty_color): Use assoc_no_quit instead of
     assq_no_quit to fetch color definition by its string name.
    
     lisp/frame.el (frame-notice-user-settings): Refresh the value of
     frame parameters after calling tty-handle-reverse-video.  Call
     face-set-after-frame-default with the actual parameters, to avoid
     resetting colors back to unspecified.
     (set-background-color, set-foreground-color): Pass the selected
     color to face-set-after-frame-default.
---
 lisp/ChangeLog |    9 +++++++++
 lisp/frame.el  |   14 +++++++++++---
 src/ChangeLog  |    6 ++++++
 src/xfaces.c   |    2 +-
 4 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 17b3d11..79e3378 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2015-02-08  Eli Zaretskii  <address@hidden>
+
+       * frame.el (frame-notice-user-settings): Refresh the value of
+       frame parameters after calling tty-handle-reverse-video.  Call
+       face-set-after-frame-default with the actual parameters, to avoid
+       resetting colors back to unspecified.
+       (set-background-color, set-foreground-color): Pass the selected
+       color to face-set-after-frame-default.  (Bug#19802)
+
 2015-02-06  Wolfgang Jenkner  <address@hidden>
 
        * net/network-stream.el (network-stream-open-tls): Respect the
diff --git a/lisp/frame.el b/lisp/frame.el
index c77df55..eea5c24 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -251,6 +251,10 @@ there (in decreasing order of priority)."
            (let ((newparms (frame-parameters))
                  (frame (selected-frame)))
              (tty-handle-reverse-video frame newparms)
+             ;; tty-handle-reverse-video might change the frame's
+             ;; color parameters, and we need to use the updated
+             ;; value below.
+             (setq newparms (frame-parameters))
              ;; If we changed the background color, we need to update
              ;; the background-mode parameter, and maybe some faces,
              ;; too.
@@ -258,7 +262,7 @@ there (in decreasing order of priority)."
                (unless (or (assq 'background-mode initial-frame-alist)
                            (assq 'background-mode default-frame-alist))
                  (frame-set-background-mode frame))
-               (face-set-after-frame-default frame))))))
+               (face-set-after-frame-default frame newparms))))))
 
     ;; If the initial frame is still around, apply initial-frame-alist
     ;; and default-frame-alist to it.
@@ -1185,7 +1189,9 @@ To get the frame's current background color, use 
`frame-parameters'."
   (modify-frame-parameters (selected-frame)
                           (list (cons 'background-color color-name)))
   (or window-system
-      (face-set-after-frame-default (selected-frame))))
+      (face-set-after-frame-default (selected-frame)
+                                   (list
+                                    (cons 'background-color color-name)))))
 
 (defun set-foreground-color (color-name)
   "Set the foreground color of the selected frame to COLOR-NAME.
@@ -1195,7 +1201,9 @@ To get the frame's current foreground color, use 
`frame-parameters'."
   (modify-frame-parameters (selected-frame)
                           (list (cons 'foreground-color color-name)))
   (or window-system
-      (face-set-after-frame-default (selected-frame))))
+      (face-set-after-frame-default (selected-frame)
+                                   (list
+                                    (cons 'foreground-color color-name)))))
 
 (defun set-cursor-color (color-name)
   "Set the text cursor color of the selected frame to COLOR-NAME.
diff --git a/src/ChangeLog b/src/ChangeLog
index 135f28f..7a7fd23 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-08  Eli Zaretskii  <address@hidden>
+
+       * xfaces.c (map_tty_color): Use assoc_no_quit instead of
+       assq_no_quit to fetch color definition by its string name.
+       (Bug#19802)
+
 2015-02-05  Eli Zaretskii  <address@hidden>
 
        * xdisp.c (move_it_in_display_line_to): Handle the case where the
diff --git a/src/xfaces.c b/src/xfaces.c
index 44c72aa..29c91f7 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -5793,7 +5793,7 @@ map_tty_color (struct frame *f, struct face *face,
   if (STRINGP (color)
       && SCHARS (color)
       && CONSP (Vtty_defined_color_alist)
-      && (def = assq_no_quit (color, call1 (Qtty_color_alist, frame)),
+      && (def = assoc_no_quit (color, call1 (Qtty_color_alist, frame)),
          CONSP (def)))
     {
       /* Associations in tty-defined-color-alist are of the form



reply via email to

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