Mercurial > emacs
changeset 32254:f93728883f64
(Fframe_parameter): For non-windowed frames, if
f->param_alist says foreground or background color is unspecified,
call tty_color_name to return the color name computed from the
frame's current colors.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 07 Oct 2000 18:57:36 +0000 |
parents | e3c97d8f7a7e |
children | 867752ecd03c |
files | src/frame.c |
diffstat | 1 files changed, 23 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/frame.c Sat Oct 07 18:49:14 2000 +0000 +++ b/src/frame.c Sat Oct 07 18:57:36 2000 +0000 @@ -2133,7 +2133,29 @@ { value = Fassq (parameter, f->param_alist); if (CONSP (value)) - value = XCDR (value); + { + extern char unspecified_fg[], unspecified_bg[]; + extern Lisp_Object Qbackground_color, Qforeground_color; + + value = XCDR (value); + /* Fframe_parameters puts the actual fg/bg color names, + even if f->param_alist says otherwise. This is + important when param_alist's notion of colors is + "unspecified". We need to do the same here. */ + if (STRINGP (value) && !FRAME_WINDOW_P (f)) + { + if (EQ (parameter, Qbackground_color) + && strncmp (XSTRING (value)->data, + unspecified_bg, + XSTRING (value)->size) == 0) + value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f)); + else if (EQ (parameter, Qforeground_color) + && strncmp (XSTRING (value)->data, + unspecified_fg, + XSTRING (value)->size) == 0) + value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f)); + } + } else if (EQ (parameter, Qdisplay_type) || EQ (parameter, Qbackground_mode)) /* Avoid consing in frequent cases. */