From e8636ac8cc96e1e7e948f04091792da09dafcc76 Mon Sep 17 00:00:00 2001 From: Ken Brown Date: Fri, 27 Oct 2017 13:48:46 -0400 Subject: [PATCH] Fix startup display on Cygwin * src/xterm.c (x_make_frame_visible) [CYGWIN]: Restore code that forces input to be read. (Bug#24091) --- src/xterm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/xterm.c b/src/xterm.c index d90654b101d..dbb8349452d 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -11504,6 +11504,22 @@ x_make_frame_visible (struct frame *f) /* Try to wait for a MapNotify event (that is what tells us when a frame becomes visible). */ + +#ifdef CYGWIN + /* On Cygwin, which uses input polling, we need to force input to + be read. See + http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html + and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24091#131. + Fake an alarm signal to let the handler know that there's + something to be read. + + It could be confusing if a real alarm arrives while processing + the fake one. Turn it off and let the handler reset it. */ + int old_poll_suppress_count = poll_suppress_count; + poll_suppress_count = 1; + poll_for_input_1 (); + poll_suppress_count = old_poll_suppress_count; +#endif x_wait_for_event (f, MapNotify); } } -- 2.39.2