> From: Juri Linkov <juri@jurt...>
> Date: Mon, 20 Jun 2005 07:48:08 +0300
> Cc: emacs-devel@gnu.... >
> > First, it calls an obsolete function frame-update-face-colors (it's an
> > alias for backward compatibility; let's use the function it is aliased
> > to).
> Then it would be better to rename it in all C files to not create
> Lisp symbols in C for both of them.
> > Second, I think doing this unconditionally might not be a good idea:
> > wouldn't it clash with what x_set_frame_parameters and
> > IT_set_frame_parameters do for their respective displays?
> It is called conditionally on non-window and non-dos systems
> so it doesn't clash with x_set_frame_parameters or IT_set_frame_parameters.
Sorry, you are right.
> I see there is a bug not caused by my patch:
> emacs -q -nw -rv
> sets the background mode to light on xterm. But since -rv switches
> foreground and background, it should switch the background mode too
> from light to dark on xterm.
I think this is a bug.
> > . modify the default color with set-background-color and verify that
> > it is in effect for new frames created with "C-x 5 b" and the like
> For frames with undefined backgrounds it reuses the background mode
> specified with set-background-color. Is it right?
Yes, set-background-color is global, its effect is not limited to the
frame where it was invoked.
> update_face_from_frame_parameter at xfaces.c:4490
> x_set_background_color at xfns.c:911
> x_set_frame_parameters at frame.c:2738
> Fmodify_frame_parameters at frame.c:2280
> Finternal_set_lisp_face_attribute at xfaces.c:4434
> But on tty it doesn't go past the function Fmodify_frame_parameters
> due to the condition `if (FRAME_WINDOW_P (f))'. The explicit call
> to `Qframe_update_face_colors' I added in Fmodify_frame_parameters
> is on the else-branch of this condition.