Prevent matrices from remaining invalid post mini-window resize

* src/androidfns.c (android_create_tip_frame): Enable building
with GLYPH_DEBUG.

* src/window.c (resize_mini_window_apply): Garbage the frame if
F->redisplay is already set to indicate that redisplay_internal
should nevertheless return to it.
This commit is contained in:
Po Lu 2024-01-25 12:17:54 +08:00
parent 65ea742ed5
commit caea0c1649
2 changed files with 11 additions and 4 deletions

View file

@ -1931,9 +1931,6 @@ android_create_tip_frame (struct android_display_info *dpyinfo,
image_cache_refcount
= FRAME_IMAGE_CACHE (f) ? FRAME_IMAGE_CACHE (f)->refcount : 0;
#ifdef GLYPH_DEBUG
dpyinfo_refcount = dpyinfo->reference_count;
#endif /* GLYPH_DEBUG */
gui_default_parameter (f, parms, Qfont_backend, Qnil,
"fontBackend", "FontBackend", RES_TYPE_STRING);

View file

@ -5331,7 +5331,17 @@ resize_mini_window_apply (struct window *w, int delta)
w->pixel_top = r->pixel_top + r->pixel_height;
w->top_line = r->top_line + r->total_lines;
/* Enforce full redisplay of the frame. */
/* Enforce full redisplay of the frame. If f->redisplay is already
set, which it generally is in the wake of a ConfigureNotify
(frame resize) event, merely setting f->redisplay is insufficient
for redisplay_internal to continue redisplaying the frame, as
redisplay_internal cannot distinguish between f->redisplay set
before it calls redisplay_window and that after, so garbage the
frame as well. */
if (f->redisplay)
SET_FRAME_GARBAGED (f);
/* FIXME: Shouldn't some of the caller do it? */
fset_redisplay (f);
adjust_frame_glyphs (f);