]> git.eshelyaron.com Git - emacs.git/commitdiff
Prevent from frozen frame after `C-z' in Lucid builds
authorTino Calancha <tino.calancha@gmail.com>
Sat, 15 Aug 2020 14:18:03 +0000 (16:18 +0200)
committerTino Calancha <tino.calancha@gmail.com>
Sat, 15 Aug 2020 14:18:03 +0000 (16:18 +0200)
Some WMs (e.g. mutter in Gnome Shell) don't unmap iconized windows,
thus we won't get a MapNotify when deconifying them.
Check if we are deconifying a window elsewhere (Bug#42655).

- src/xterm.c (handle_one_xevent):
Check for window deconify when receiving a FocusIn signal.

src/xterm.c

index 44396955ed0a34d9df8b2972299e82311c12b4d3..a567ab163af174c36c47fcc59d0451b32f7ba9c7 100644 (file)
@@ -8762,6 +8762,20 @@ handle_one_xevent (struct x_display_info *dpyinfo,
       goto OTHER;
 
     case FocusIn:
+      /* Some WMs (e.g. Mutter in Gnome Shell), don't unmap
+         minimized/iconified windows; thus, for those WMs we won't get
+         a MapNotify when unminimizing/deconifying.  Check here if we
+         are deconizing a window (Bug42655). */
+      f = any;
+      if (f && FRAME_ICONIFIED_P (f))
+       {
+          SET_FRAME_VISIBLE (f, 1);
+          SET_FRAME_ICONIFIED (f, false);
+          f->output_data.x->has_been_visible = true;
+          inev.ie.kind = DEICONIFY_EVENT;
+          XSETFRAME (inev.ie.frame_or_window, f);
+        }
+
       x_detect_focus_change (dpyinfo, any, event, &inev.ie);
       goto OTHER;