emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-24 r116976: Prevent endless loop in x_make_frame_vis


From: Jan D.
Subject: [Emacs-diffs] emacs-24 r116976: Prevent endless loop in x_make_frame_visible.
Date: Thu, 17 Apr 2014 09:08:02 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116976
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/17237
committer: Jan D. <address@hidden>
branch nick: emacs-24
timestamp: Thu 2014-04-17 11:07:58 +0200
message:
  Prevent endless loop in x_make_frame_visible.
  
  * xterm.c (x_make_frame_visible): Prevent endless loop when frame
  never becomes visible, i.e. using XMonad .
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xterm.c                    xterm.c-20091113204419-o5vbwnq5f7feedwu-244
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-04-17 08:58:59 +0000
+++ b/src/ChangeLog     2014-04-17 09:07:58 +0000
@@ -1,3 +1,8 @@
+2014-04-17  Jan Djärv  <address@hidden>
+
+       * xterm.c (x_make_frame_visible): Prevent endless loop when frame
+       never becomes visible, i.e. using XMonad  (Bug#17237).
+
 2014-04-17  Eli Zaretskii  <address@hidden>
 
        * xdisp.c (Fline_pixel_height): Don't assume that the current

=== modified file 'src/xterm.c'
--- a/src/xterm.c       2014-04-02 14:33:33 +0000
+++ b/src/xterm.c       2014-04-17 09:07:58 +0000
@@ -8899,6 +8899,7 @@
 x_make_frame_visible (struct frame *f)
 {
   int original_top, original_left;
+  int tries = 0;
 
   block_input ();
 
@@ -9006,7 +9007,13 @@
        /* Force processing of queued events.  */
        x_sync (f);
 
-       /* This hack is still in use at least for Cygwin.  See
+        /* If on another desktop, the deiconify/map may be ignored and the
+           frame never becomes visible.  XMonad does this.
+           Prevent an endless loop.  */
+        if (FRAME_ICONIFIED_P (f) &&  ++tries > 100)
+          break;
+
+       /* This hack is still in use at least for Cygwin.  See
           http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
 
           Machines that do polling rather than SIGIO have been


reply via email to

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