aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii <[email protected]>2000-10-09 16:05:35 +0000
committerEli Zaretskii <[email protected]>2000-10-09 16:05:35 +0000
commit1e21fe48c0731afa2b0416d0d61a59ded1e373bd (patch)
treed46f95ec05e271308d1a03864d1c5df70bd2e62d
parent126cbb422adc756d37ddf9eeac9df71537c75b39 (diff)
(IT_set_frame_parameters): Don't initialize Lisp_Object
variables. If ALIST includes foreground-color or background-color, change also the colors of the default face for this frame.
-rw-r--r--src/ChangeLog7
-rw-r--r--src/msdos.c54
2 files changed, 51 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 75c5457853..65b8e4f988 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2000-10-09 Eli Zaretskii <[email protected]>
+
+ * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
+ variables. If ALISt includes foreground-color or
+ background-color, change also the colors of the default face for
+ this frame.
+
2000-10-08 Eli Zaretskii <[email protected]>
* msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
diff --git a/src/msdos.c b/src/msdos.c
index 9939cc5fe7..0797c7607a 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -2331,8 +2331,10 @@ IT_set_frame_parameters (f, alist)
for (i = 0; i < j; i++)
{
- Lisp_Object prop = parms[i];
- Lisp_Object val = values[i];
+ Lisp_Object prop, val;
+
+ prop = parms[i];
+ val = values[i];
if (EQ (prop, Qreverse))
reverse = EQ (val, Qt);
@@ -2344,8 +2346,12 @@ IT_set_frame_parameters (f, alist)
/* Now process the alist elements in reverse of specified order. */
for (i--; i >= 0; i--)
{
- Lisp_Object prop = parms[i];
- Lisp_Object val = values[i];
+ extern Lisp_Object Qdefault, QCforeground, QCbackground;
+ Lisp_Object prop, val;
+ Lisp_Object frame;
+
+ prop = parms[i];
+ val = values[i];
if (EQ (prop, Qforeground_color))
{
@@ -2356,12 +2362,21 @@ IT_set_frame_parameters (f, alist)
&& new_color != FACE_TTY_DEFAULT_FG_COLOR
&& new_color != FACE_TTY_DEFAULT_BG_COLOR)
{
+ /* Make sure the foreground of the default face for this
+ frame is changed as well. */
+ XSETFRAME (frame, f);
if (reverse)
- /* FIXME: should the fore-/background of the default
- face change here as well? */
- FRAME_BACKGROUND_PIXEL (f) = new_color;
+ {
+ FRAME_BACKGROUND_PIXEL (f) = new_color;
+ Finternal_set_lisp_face_attribute (Qdefault, QCbackground,
+ val, frame);
+ }
else
- FRAME_FOREGROUND_PIXEL (f) = new_color;
+ {
+ FRAME_FOREGROUND_PIXEL (f) = new_color;
+ Finternal_set_lisp_face_attribute (Qdefault, QCforeground,
+ val, frame);
+ }
redraw = 1;
fg_set = 1;
if (termscript)
@@ -2377,10 +2392,21 @@ IT_set_frame_parameters (f, alist)
&& new_color != FACE_TTY_DEFAULT_FG_COLOR
&& new_color != FACE_TTY_DEFAULT_BG_COLOR)
{
+ /* Make sure the background of the default face for this
+ frame is changed as well. */
+ XSETFRAME (frame, f);
if (reverse)
- FRAME_FOREGROUND_PIXEL (f) = new_color;
+ {
+ FRAME_FOREGROUND_PIXEL (f) = new_color;
+ Finternal_set_lisp_face_attribute (Qdefault, QCforeground,
+ val, frame);
+ }
else
- FRAME_BACKGROUND_PIXEL (f) = new_color;
+ {
+ FRAME_BACKGROUND_PIXEL (f) = new_color;
+ Finternal_set_lisp_face_attribute (Qdefault, QCbackground,
+ val, frame);
+ }
redraw = 1;
bg_set = 1;
if (termscript)
@@ -2408,14 +2434,22 @@ IT_set_frame_parameters (f, alist)
the current frame colors. */
if (reverse && !was_reverse)
{
+ Lisp_Object frame;
+
if (!fg_set)
{
FRAME_BACKGROUND_PIXEL (f) = orig_fg;
+ XSETFRAME (frame, f);
+ Finternal_set_lisp_face_attribute (Qdefault, QCbackground,
+ tty_color_name (orig_fg), frame);
redraw = 1;
}
if (!bg_set)
{
FRAME_FOREGROUND_PIXEL (f) = orig_bg;
+ XSETFRAME (frame, f);
+ Finternal_set_lisp_face_attribute (Qdefault, QCforeground,
+ tty_color_name (orig_bg), frame);
redraw = 1;
}
}