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)
This commit is contained in:
Eli Zaretskii 2015-04-27 18:15:52 +03:00
parent def0df01fb
commit d89687b1ba

View file

@ -13359,6 +13359,13 @@ redisplay_internal (void)
if (f->fonts_changed)
{
adjust_frame_glyphs (f);
/* Disable all redisplay optimizations for this frame.
This is because adjust_frame_glyphs resets the
enabled_p flag for all glyph rows of all windows, so
many optimizations will fail anyway, and some might
fail to test that flag and do bogus things as
result. */
SET_FRAME_GARBAGED (f);
f->fonts_changed = false;
}
/* If cursor type has been changed on the frame
@ -13753,6 +13760,10 @@ redisplay_internal (void)
if (f->fonts_changed)
{
adjust_frame_glyphs (f);
/* Disable all redisplay optimizations for this
frame. For the reasons, see the comment near
the previous call to adjust_frame_glyphs above. */
SET_FRAME_GARBAGED (f);
f->fonts_changed = false;
goto retry_frame;
}