diff options
Diffstat (limited to 'extra/gtk2/fix-stuck-grabs.patch')
-rw-r--r-- | extra/gtk2/fix-stuck-grabs.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/extra/gtk2/fix-stuck-grabs.patch b/extra/gtk2/fix-stuck-grabs.patch new file mode 100644 index 000000000..accec431e --- /dev/null +++ b/extra/gtk2/fix-stuck-grabs.patch @@ -0,0 +1,47 @@ +From a9fb816a3f64227936f4b25882e4f20ab5018c9c Mon Sep 17 00:00:00 2001 +From: Matthias Clasen <mclasen@redhat.com> +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 <tetromino@gentoo.org>: 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 |