aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2015-04-27 18:15:52 +0300
committerEli Zaretskii2015-04-27 18:15:52 +0300
commitd89687b1ba4d0e4a252ca48749103467f2642212 (patch)
tree53a0fc7506f10965549c33e8b2580b9ab8d39608 /src
parentdef0df01fb2cfa14ed87a9d719e0ccc45b363fec (diff)
downloademacs-d89687b1ba4d0e4a252ca48749103467f2642212.tar.gz
emacs-d89687b1ba4d0e4a252ca48749103467f2642212.zip
Fix redisplay of frame after loading new fonts
* src/xdisp.c (redisplay_internal): When retrying redisplay of a frame because new fonts were loaded, disable all redisplay optimizations on that frame by calling SET_FRAME_GARBAGED. (Bug#20410)
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 5a27adc2b18..c2f0b747c6e 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13359,6 +13359,13 @@ redisplay_internal (void)
13359 if (f->fonts_changed) 13359 if (f->fonts_changed)
13360 { 13360 {
13361 adjust_frame_glyphs (f); 13361 adjust_frame_glyphs (f);
13362 /* Disable all redisplay optimizations for this frame.
13363 This is because adjust_frame_glyphs resets the
13364 enabled_p flag for all glyph rows of all windows, so
13365 many optimizations will fail anyway, and some might
13366 fail to test that flag and do bogus things as
13367 result. */
13368 SET_FRAME_GARBAGED (f);
13362 f->fonts_changed = false; 13369 f->fonts_changed = false;
13363 } 13370 }
13364 /* If cursor type has been changed on the frame 13371 /* If cursor type has been changed on the frame
@@ -13753,6 +13760,10 @@ redisplay_internal (void)
13753 if (f->fonts_changed) 13760 if (f->fonts_changed)
13754 { 13761 {
13755 adjust_frame_glyphs (f); 13762 adjust_frame_glyphs (f);
13763 /* Disable all redisplay optimizations for this
13764 frame. For the reasons, see the comment near
13765 the previous call to adjust_frame_glyphs above. */
13766 SET_FRAME_GARBAGED (f);
13756 f->fonts_changed = false; 13767 f->fonts_changed = false;
13757 goto retry_frame; 13768 goto retry_frame;
13758 } 13769 }