[gtk+/native-layout] When native window requests button presses request other button related events
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/native-layout] When native window requests button presses request other button related events
- Date: Sun, 4 Apr 2010 02:20:42 +0000 (UTC)
commit b26536162c1ba5db1e7a247943d7de1ead60f106
Author: Alexander Larsson <alexl redhat com>
Date: Wed Jan 20 15:37:16 2010 +0100
When native window requests button presses request other button related events
We need to do this because otherwise the implicit button grab for this
(native) window will not deliver the button events not selected for
by this window. This is a problem because non-native child windows may
select using a wider event mask, and we can't emulate these events if we
don't get the native events.
Fixes bug #607508
gdk/gdkwindow.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 4510ddd..046dae9 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -1215,8 +1215,15 @@ get_native_event_mask (GdkWindowObject *private)
* important thing, because in X only one client can do
* so, and we don't want to unexpectedly prevent another
* client from doing it.
+ *
+ * We also need to do the same if the app selects for button presses
+ * because then we will get implicit grabs for this window, and the
+ * event mask used for that grab is based on the rest of the mask
+ * for the window, but we might need more events than this window
+ * lists due to some non-native child window.
*/
- if (gdk_window_is_toplevel (private))
+ if (gdk_window_is_toplevel (private) ||
+ mask & GDK_BUTTON_PRESS_MASK)
mask |=
GDK_POINTER_MOTION_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]