[gtk+/xi2] gdk_device_grab(): Force listen on motion/button/crossing events.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+/xi2] gdk_device_grab(): Force listen on motion/button/crossing events.
- Date: Wed, 30 Dec 2009 21:17:32 +0000 (UTC)
commit 1210cd961a9d6189dc872f91cf128400f64e2621
Author: Carlos Garnacho <carlos gnome org>
Date: Mon Dec 21 21:55:38 2009 +0100
gdk_device_grab(): Force listen on motion/button/crossing events.
This code is taken from gdk_pointer_grab(), the additional events
in the modified mask are needed for internal GDK bookkeeping
(setting toplevel_under_pointer correctly and such).
gdk/gdkdevice.c | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/gdk/gdkdevice.c b/gdk/gdkdevice.c
index 97a5197..87cb795 100644
--- a/gdk/gdkdevice.c
+++ b/gdk/gdkdevice.c
@@ -654,6 +654,23 @@ gdk_device_get_axis (GdkDevice *device,
return FALSE;
}
+static GdkEventMask
+get_native_grab_event_mask (GdkEventMask grab_mask)
+{
+ /* Similar to the above but for pointer events only */
+ return
+ GDK_POINTER_MOTION_MASK |
+ GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
+ GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
+ GDK_SCROLL_MASK |
+ (grab_mask &
+ ~(GDK_POINTER_MOTION_HINT_MASK |
+ GDK_BUTTON_MOTION_MASK |
+ GDK_BUTTON1_MOTION_MASK |
+ GDK_BUTTON2_MOTION_MASK |
+ GDK_BUTTON3_MOTION_MASK));
+}
+
/**
* gdk_device_grab:
* @device: a #GdkDevice
@@ -733,7 +750,7 @@ gdk_device_grab (GdkDevice *device,
window,
native,
owner_events,
- event_mask,
+ get_native_grab_event_mask (event_mask),
NULL,
cursor,
time_);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]