aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2006-08-01 01:22:48 +0000
committerKenichi Handa2006-08-01 01:22:48 +0000
commit8fb9e6757ed669f207f203b21ee0aa94715797d0 (patch)
tree017ede852826eee687cb94bb8ff1d6fe49cdfcd0 /src
parent6e34c9c13fe8f2a6e7b7c15b854d53d15683c46f (diff)
downloademacs-8fb9e6757ed669f207f203b21ee0aa94715797d0.tar.gz
emacs-8fb9e6757ed669f207f203b21ee0aa94715797d0.zip
(x_set_font_backend): Do more works that were done in
font_update_drivers before.
Diffstat (limited to 'src')
-rw-r--r--src/frame.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/frame.c b/src/frame.c
index 6d1df70955f..9bbdcd592aa 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -3179,8 +3179,6 @@ x_set_font_backend (f, new_value, old_value)
3179 struct frame *f; 3179 struct frame *f;
3180 Lisp_Object new_value, old_value; 3180 Lisp_Object new_value, old_value;
3181{ 3181{
3182 Lisp_Object frame;
3183
3184 if (! NILP (new_value) 3182 if (! NILP (new_value)
3185 && !CONSP (new_value)) 3183 && !CONSP (new_value))
3186 { 3184 {
@@ -3199,9 +3197,32 @@ x_set_font_backend (f, new_value, old_value)
3199 p1++; 3197 p1++;
3200 p0 = p1; 3198 p0 = p1;
3201 } 3199 }
3200 new_value = Fnreverse (new_value);
3201 }
3202
3203 if (! NILP (old_value) && ! NILP (Fequal (old_value, new_value)))
3204 return;
3205
3206 if (FRAME_FONT_OBJECT (f))
3207 {
3208 free_all_realized_faces (Qnil);
3209 Fclear_font_cache ();
3202 } 3210 }
3203 3211
3204 font_update_drivers (f, new_value, FRAME_FONT_OBJECT (f)); 3212 new_value = font_update_drivers (f, new_value);
3213 if (NILP (new_value))
3214 error ("No font backend available");
3215 store_frame_param (f, Qfont_backend, new_value);
3216
3217 if (FRAME_FONT_OBJECT (f))
3218 {
3219 Lisp_Object frame;
3220
3221 XSETFRAME (frame, f);
3222 x_set_font (f, Fframe_parameter (frame, Qfont), Qnil);
3223 ++face_change_count;
3224 ++windows_or_buffers_changed;
3225 }
3205} 3226}
3206#endif /* USE_FONT_BACKEND */ 3227#endif /* USE_FONT_BACKEND */
3207 3228