From 2fa9699fd795a081420682877fc448ff2391f9bd Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 5 Oct 2019 15:02:46 +0300 Subject: [PATCH] Fix display of cursor in obscure use case on MS-Windows * src/xdisp.c (redisplay_internal): Detect when the frame becomes garbaged inside the call to update_frame, and redraw the frame in that case. (Bug#37579) --- src/xdisp.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 9d1fdecaffb..f5dedc218e2 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -15587,6 +15587,13 @@ redisplay_internal (void) STOP_POLLING; pending |= update_frame (f, false, false); + /* On some platforms (at least MS-Windows), the + scroll_run_hook called from scrolling_window + called from update_frame could set the frame's + garbaged flag, in which case we need to + redisplay the frame. */ + if (FRAME_GARBAGED_P (f)) + goto retry_frame; f->cursor_type_changed = false; f->updated_p = true; f->inhibit_clear_image_cache = false; -- 2.39.5