[mutter] Take the touch grab in MetaBackendX11
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] Take the touch grab in MetaBackendX11
- Date: Mon, 14 Jul 2014 13:42:15 +0000 (UTC)
commit 55354f5c38a0a2722ae53da8bb587e75042c3a16
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Jul 14 09:41:10 2014 -0400
Take the touch grab in MetaBackendX11
This means that it won't trigger when we're running as a Wayland
compositor, which will cause a few warnings and possibly more
brokenness.
src/backends/x11/meta-backend-x11.c | 20 ++++++++++++++++++++
src/core/display.c | 31 -------------------------------
2 files changed, 20 insertions(+), 31 deletions(-)
---
diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
index 9f3fe1a..c7440e2 100644
--- a/src/backends/x11/meta-backend-x11.c
+++ b/src/backends/x11/meta-backend-x11.c
@@ -253,6 +253,24 @@ x_event_source_new (MetaBackend *backend)
}
static void
+take_touch_grab (MetaBackend *backend)
+{
+ MetaBackendX11 *x11 = META_BACKEND_X11 (backend);
+ MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11);
+ unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
+ XIEventMask mask = { META_VIRTUAL_CORE_POINTER_ID, sizeof (mask_bits), mask_bits };
+ XIGrabModifiers mods = { XIAnyModifier, 0 };
+
+ XISetMask (mask.mask, XI_TouchBegin);
+ XISetMask (mask.mask, XI_TouchUpdate);
+ XISetMask (mask.mask, XI_TouchEnd);
+
+ XIGrabTouchBegin (priv->xdisplay, META_VIRTUAL_CORE_POINTER_ID,
+ DefaultRootWindow (priv->xdisplay),
+ False, &mask, 1, &mods);
+}
+
+static void
meta_backend_x11_post_init (MetaBackend *backend)
{
MetaBackendX11 *x11 = META_BACKEND_X11 (backend);
@@ -289,6 +307,8 @@ meta_backend_x11_post_init (MetaBackend *backend)
meta_fatal ("X server doesn't have the XInput extension, version 2.2 or newer\n");
}
+ take_touch_grab (backend);
+
META_BACKEND_CLASS (meta_backend_x11_parent_class)->post_init (backend);
}
diff --git a/src/core/display.c b/src/core/display.c
index 228f512..fc7948e 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -428,35 +428,6 @@ gesture_tracker_state_changed (MetaGestureTracker *tracker,
DefaultRootWindow (display->xdisplay), event_mode);
}
-static void
-meta_display_grab_window_touch (MetaDisplay *display,
- Window xwindow)
-{
- MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ());
- unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
- XIEventMask mask = { META_VIRTUAL_CORE_POINTER_ID, sizeof (mask_bits), mask_bits };
- XIGrabModifiers mods = { XIAnyModifier, 0 };
-
- XISetMask (mask.mask, XI_TouchBegin);
- XISetMask (mask.mask, XI_TouchUpdate);
- XISetMask (mask.mask, XI_TouchEnd);
-
- XIGrabTouchBegin (meta_backend_x11_get_xdisplay (backend),
- META_VIRTUAL_CORE_POINTER_ID,
- xwindow, False, &mask, 1, &mods);
-}
-
-static void
-meta_display_ungrab_window_touch (MetaDisplay *display,
- Window xwindow)
-{
- MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ());
- XIGrabModifiers mods = { XIAnyModifier, 0 };
-
- XIUngrabTouchBegin (meta_backend_x11_get_xdisplay (backend),
- META_VIRTUAL_CORE_POINTER_ID, xwindow, 1, &mods);
-}
-
/**
* meta_display_open:
*
@@ -857,7 +828,6 @@ meta_display_open (void)
display->gesture_tracker = meta_gesture_tracker_new ();
g_signal_connect (display->gesture_tracker, "state-changed",
G_CALLBACK (gesture_tracker_state_changed), display);
- meta_display_grab_window_touch (display, DefaultRootWindow (display->xdisplay));
/* We know that if mutter is running as a Wayland compositor,
* we start out with no windows.
@@ -1029,7 +999,6 @@ meta_display_close (MetaDisplay *display,
meta_display_remove_autoraise_callback (display);
- meta_display_ungrab_window_touch (display, DefaultRootWindow (display->xdisplay));
g_clear_object (&display->gesture_tracker);
if (display->focus_timeout_id)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]