summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2015-02-08 18:17:40 +0200
committerEli Zaretskii <eliz@gnu.org>2015-02-08 18:17:40 +0200
commit20c817d3657ec67792edafd75f34d829144e8590 (patch)
treeda827bd286e203891f0f5b15409d635e24c21195
parenteca7da109248c40963c285417b878a8abcd84049 (diff)
downloademacs-20c817d3657ec67792edafd75f34d829144e8590.tar.gz
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.
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/frame.el14
-rw-r--r--src/ChangeLog6
-rw-r--r--src/xfaces.c2
4 files changed, 27 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 17b3d112432..79e3378b2e8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2015-02-08 Eli Zaretskii <eliz@gnu.org>
+
+ * 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 <wjenkner@inode.at>
* net/network-stream.el (network-stream-open-tls): Respect the
diff --git a/lisp/frame.el b/lisp/frame.el
index c77df558da8..eea5c24a82d 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 135f28fb20f..7a7fd23d43d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-08 Eli Zaretskii <eliz@gnu.org>
+
+ * 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 <eliz@gnu.org>
* xdisp.c (move_it_in_display_line_to): Handle the case where the
diff --git a/src/xfaces.c b/src/xfaces.c
index 44c72aa4944..29c91f7169f 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