[mutter/gnome-3-16] backend-x11: Fix our awful hack for crossing events, too
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gnome-3-16] backend-x11: Fix our awful hack for crossing events, too
- Date: Sat, 1 Aug 2015 20:33:55 +0000 (UTC)
commit 55fd05ea588a34564128f9f657084c82eae1cb0b
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Jun 24 10:30:10 2015 -0700
backend-x11: Fix our awful hack for crossing events, too
For enter / leave events, which we use in the UI code, we need to make
sure that these coordinates are root-relative as well, otherwise the
cursor when entering frames might be incorrect.
src/backends/x11/meta-backend-x11.c | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
index 6e52a5a..29fcb85 100644
--- a/src/backends/x11/meta-backend-x11.c
+++ b/src/backends/x11/meta-backend-x11.c
@@ -133,6 +133,8 @@ static void
translate_crossing_event (MetaBackendX11 *x11,
XIEnterEvent *enter_event)
{
+ MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11);
+
/* Throw out weird events generated by grabs. */
if (enter_event->mode == XINotifyGrab ||
enter_event->mode == XINotifyUngrab)
@@ -141,7 +143,15 @@ translate_crossing_event (MetaBackendX11 *x11,
return;
}
- enter_event->event = meta_backend_x11_get_xwindow (x11);
+ Window stage_window = meta_backend_x11_get_xwindow (x11);
+ if (enter_event->event != stage_window)
+ {
+ /* See above for the rationale for this... */
+ g_assert (priv->mode == META_BACKEND_X11_MODE_COMPOSITOR);
+ enter_event->event = meta_backend_x11_get_xwindow (x11);
+ enter_event->event_x = enter_event->root_x;
+ enter_event->event_y = enter_event->root_y;
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]