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.  */