From a9fb816a3f64227936f4b25882e4f20ab5018c9c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 16 May 2012 21:18:51 +0000 Subject: Fix a case of 'stuck grab' This was showing up when using a combo box in list mode. After popping up the list, the keyboard grab appeared stuck. What was stuck here is only the client-side grab, since we forgot to clean up our grabs when receiving an UnmapNotify. This bug was introduced in 3f6592f60fd15fb353fc84600caefba3054dc892. [ Alexandre Rostovtsev : backport to 2.24 ] https://bugzilla.gnome.org/show_bug.cgi?id=680346 --- diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c index 7cc1000..b96e9f5 100644 --- a/gdk/x11/gdkevents-x11.c +++ b/gdk/x11/gdkevents-x11.c @@ -1799,16 +1799,15 @@ gdk_event_translate (GdkDisplay *display, * means we hid the window ourselves, so we will have already flipped * the iconified bit off. */ - if (window) - { - if (GDK_WINDOW_IS_MAPPED (window)) - gdk_synthesize_window_state (window, - 0, - GDK_WINDOW_STATE_ICONIFIED); - - _gdk_xgrab_check_unmap (window, xevent->xany.serial); - } + if (window && GDK_WINDOW_IS_MAPPED (window)) + gdk_synthesize_window_state (window, + 0, + GDK_WINDOW_STATE_ICONIFIED); } + + if (window) + _gdk_xgrab_check_unmap (window, xevent->xany.serial); + break; case MapNotify: -- cgit v0.9.0.2