emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 e8636ac: Fix startup display on Cygwin


From: Ken Brown
Subject: [Emacs-diffs] emacs-26 e8636ac: Fix startup display on Cygwin
Date: Fri, 27 Oct 2017 13:52:14 -0400 (EDT)

branch: emacs-26
commit e8636ac8cc96e1e7e948f04091792da09dafcc76
Author: Ken Brown <address@hidden>
Commit: Ken Brown <address@hidden>

    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 d90654b..dbb8349 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);
   }
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]