From 3c4edfd85ee8f49e40715a400a1fc65950e07482 Mon Sep 17 00:00:00 2001 From: Tino Calancha Date: Sat, 15 Aug 2020 16:18:03 +0200 Subject: [PATCH] Prevent from frozen frame after `C-z' in Lucid builds 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 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/xterm.c b/src/xterm.c index 44396955ed0..a567ab163af 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -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; -- 2.39.5