changeset 99235:eccf5258acaf

* w32fns.c (x_create_tip_frame): Prevent default foreground color for new frames overriding foreground for tooltips. Based on similar patch from Martin Rudalics <rudalics@gmx.at>. (Bug#1032)
author Juanma Barranquero <lekktu@gmail.com>
date Thu, 30 Oct 2008 01:27:06 +0000
parents 770ae8d8f7f4
children 33f425648e13
files src/ChangeLog src/w32fns.c
diffstat 2 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Oct 29 21:42:37 2008 +0000
+++ b/src/ChangeLog	Thu Oct 30 01:27:06 2008 +0000
@@ -1,3 +1,9 @@
+2008-10-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* w32fns.c (x_create_tip_frame): Prevent default foreground color for
+	new frames overriding foreground for tooltips.  Based on similar patch
+	from Martin Rudalics <rudalics@gmx.at>.  (Bug#1032)
+
 2008-10-29  Chong Yidong  <cyd@stupidchicken.com>
 
 	* emacs.c (Fdaemon_initialized): Initialize nfd.
@@ -37,7 +43,7 @@
 	(main): Don't set is_daemon.
 	(IS_DAEMON): New macro.
 	(Fdaemonp, Fdaemon_initialized): Use it.
-	(Fdaemon_initialized): Wrtie a char into the pipe to make sure the
+	(Fdaemon_initialized): Write a char into the pipe to make sure the
 	parent exits.
 	(syms_of_emacs): Explicitly initialize daemon_pipe[1].
 
--- a/src/w32fns.c	Wed Oct 29 21:42:37 2008 +0000
+++ b/src/w32fns.c	Thu Oct 30 01:27:06 2008 +0000
@@ -4364,7 +4364,7 @@
   x_default_parameter (f, parameters, Qborder_width, make_number (2),
 		       "borderWidth", "BorderWidth", RES_TYPE_NUMBER);
 
-  /* We recognize either internalBorderWidth or internalBorder 
+  /* We recognize either internalBorderWidth or internalBorder
      (which is what xterm calls it).  */
   if (NILP (Fassq (Qinternal_border_width, parameters)))
     {
@@ -5534,14 +5534,20 @@
      of the tooltip frame appear in pink.  Prevent this.  */
   {
     Lisp_Object bg = Fframe_parameter (frame, Qbackground_color);
+    Lisp_Object fg = Fframe_parameter (frame, Qforeground_color);
+    Lisp_Object colors = Qnil;
 
     /* Set tip_frame here, so that */
     tip_frame = frame;
     call2 (Qface_set_after_frame_default, frame, Qnil);
 
     if (!EQ (bg, Fframe_parameter (frame, Qbackground_color)))
-      Fmodify_frame_parameters (frame, Fcons (Fcons (Qbackground_color, bg),
-					      Qnil));
+      colors = Fcons (Fcons (Qbackground_color, bg), colors);
+    if (!EQ (fg, Fframe_parameter (frame, Qforeground_color)))
+      colors = Fcons (Fcons (Qforeground_color, fg), colors);
+
+    if (!NILP (colors))
+      Fmodify_frame_parameters (frame, colors);
   }
 
   f->no_split = 1;