From a5f696acd2f4ad2a22fd1b5e48ea97d2ffa311b9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Thu, 26 Jun 2003 21:18:45 +0000 Subject: [PATCH] Fix some of the font/face problems. --- src/ChangeLog | 9 +++++++++ src/frame.c | 2 ++ src/frame.h | 5 +++++ src/xfaces.c | 7 ++++--- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e2fb2baaaa..f5e682dcc6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,14 @@ 2003-06-26 Jan Dj,Ad(Brv + * xfaces.c (set_font_frame_param): Set default_face_done_p to zero. + (realize_default_face): Use default_face_done_p for the force_p + argument to set_lface_from_font_name. Set default_face_done_p to + one. + + * frame.c (make_frame): Initialize default_face_done_p. + + * frame.h (struct frame): Add default_face_done_p. + * config.in: Add XRegisterIMInstantiateCallback_arg6 so it will be defined. diff --git a/src/frame.c b/src/frame.c index 90741c3919..98b3e7067b 100644 --- a/src/frame.c +++ b/src/frame.c @@ -372,6 +372,8 @@ make_frame (mini_p) a newly-created, never-selected window. */ XSETFASTINT (XWINDOW (f->selected_window)->use_time, ++window_select_count); + f->default_face_done_p = 0; + return f; } diff --git a/src/frame.h b/src/frame.h index 6ecfcf970b..a2ca24a014 100644 --- a/src/frame.h +++ b/src/frame.h @@ -451,6 +451,11 @@ struct frame /* Set to non-zero in change_frame_size when size of frame changed Clear the frame in clear_garbaged_frames if set. */ unsigned resized_p : 1; + + /* Set to non-zero if the default face for the frame has been + realized. Reset to zero whenever the default face changes. + Used to see the difference between a font change and face change. */ + unsigned default_face_done_p : 1; }; #ifdef MULTI_KBOARD diff --git a/src/xfaces.c b/src/xfaces.c index a24ad6d230..e296c52a2b 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -4340,6 +4340,7 @@ set_font_frame_param (frame, lface) xfree (font); } + f->default_face_done_p = 0; Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, font_name), Qnil)); } } @@ -6586,9 +6587,9 @@ realize_default_face (f) frame_font = Fassq (Qfont, f->param_alist); xassert (CONSP (frame_font) && STRINGP (XCDR (frame_font))); frame_font = XCDR (frame_font); - /* Specify 0 for FORCE_P here, so that we don't override - a :family attribute specified for `default' for new frames. */ - set_lface_from_font_name (f, lface, frame_font, 0, 1); + set_lface_from_font_name (f, lface, frame_font, + f->default_face_done_p, 1); + f->default_face_done_p = 1; } #endif /* HAVE_WINDOW_SYSTEM */ -- 2.20.1