From: Eli Zaretskii Date: Sat, 5 Oct 2019 12:02:46 +0000 (+0300) Subject: Fix display of cursor in obscure use case on MS-Windows X-Git-Tag: emacs-27.0.90~1269 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2fa9699fd795a081420682877fc448ff2391f9bd;p=emacs.git 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) --- 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;