From bbc4116f10287b73a022c2adc8e2c61af397e987 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 13 Jul 2020 12:06:12 +0200 Subject: [PATCH] backends: Use graphene_point_t on meta_cursor_tracker_get_pointer() It's nicer to propagate along. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1475 --- src/backends/meta-cursor-tracker.c | 27 +++++++++++----------- src/backends/native/meta-backend-native.c | 7 +++--- src/backends/x11/meta-backend-x11.c | 7 +++--- src/backends/x11/meta-cursor-tracker-x11.c | 6 ++--- src/core/display.c | 6 ++--- src/core/window.c | 12 +++++----- src/meta/meta-cursor-tracker.h | 3 +-- src/x11/window-x11.c | 2 +- 8 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c index ff54779d8..90fc1b6a9 100644 --- a/src/backends/meta-cursor-tracker.c +++ b/src/backends/meta-cursor-tracker.c @@ -484,30 +484,23 @@ get_pointer_position_gdk (int *x, } static void -get_pointer_position_clutter (int *x, - int *y, - int *mods) +get_pointer_position_clutter (graphene_point_t *point, + int *mods) { ClutterSeat *seat; ClutterInputDevice *cdevice; - graphene_point_t point; seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); cdevice = clutter_seat_get_pointer (seat); - clutter_input_device_get_coords (cdevice, NULL, &point); - if (x) - *x = point.x; - if (y) - *y = point.y; + clutter_input_device_get_coords (cdevice, NULL, point); if (mods) *mods = clutter_input_device_get_modifier_state (cdevice); } void meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, - int *x, - int *y, + graphene_point_t *coords, ClutterModifierType *mods) { /* We can't use the clutter interface when not running as a wayland compositor, @@ -516,9 +509,17 @@ meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, we forward to xwayland. */ if (meta_is_wayland_compositor ()) - get_pointer_position_clutter (x, y, (int*)mods); + { + get_pointer_position_clutter (coords, (int*)mods); + } else - get_pointer_position_gdk (x, y, (int*)mods); + { + int x, y; + + get_pointer_position_gdk (&x, &y, (int*)mods); + coords->x = x; + coords->y = y; + } } void diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c index 38ff601ce..81babc248 100644 --- a/src/backends/native/meta-backend-native.c +++ b/src/backends/native/meta-backend-native.c @@ -457,10 +457,11 @@ meta_backend_native_get_current_logical_monitor (MetaBackend *backend) MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend); MetaMonitorManager *monitor_manager = meta_backend_get_monitor_manager (backend); - int x, y; + graphene_point_t point; - meta_cursor_tracker_get_pointer (cursor_tracker, &x, &y, NULL); - return meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); + return meta_monitor_manager_get_logical_monitor_at (monitor_manager, + point.x, point.y); } static void diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c index 69e4ed85f..cf4c9362e 100644 --- a/src/backends/x11/meta-backend-x11.c +++ b/src/backends/x11/meta-backend-x11.c @@ -677,7 +677,7 @@ meta_backend_x11_get_current_logical_monitor (MetaBackend *backend) MetaBackendX11 *x11 = META_BACKEND_X11 (backend); MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11); MetaCursorTracker *cursor_tracker; - int x, y; + graphene_point_t point; MetaMonitorManager *monitor_manager; MetaLogicalMonitor *logical_monitor; @@ -685,10 +685,11 @@ meta_backend_x11_get_current_logical_monitor (MetaBackend *backend) return priv->cached_current_logical_monitor; cursor_tracker = meta_backend_get_cursor_tracker (backend); - meta_cursor_tracker_get_pointer (cursor_tracker, &x, &y, NULL); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); monitor_manager = meta_backend_get_monitor_manager (backend); logical_monitor = - meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y); + meta_monitor_manager_get_logical_monitor_at (monitor_manager, + point.x, point.y); if (!logical_monitor && monitor_manager->logical_monitors) logical_monitor = monitor_manager->logical_monitors->data; diff --git a/src/backends/x11/meta-cursor-tracker-x11.c b/src/backends/x11/meta-cursor-tracker-x11.c index 91ac4b6af..1e6c39e71 100644 --- a/src/backends/x11/meta-cursor-tracker-x11.c +++ b/src/backends/x11/meta-cursor-tracker-x11.c @@ -69,10 +69,10 @@ static void update_position (MetaCursorTrackerX11 *tracker_x11) { MetaCursorTracker *tracker = META_CURSOR_TRACKER (tracker_x11); - int x, y; + graphene_point_t point; - meta_cursor_tracker_get_pointer (tracker, &x, &y, NULL); - meta_cursor_tracker_update_position (tracker, x, y); + meta_cursor_tracker_get_pointer (tracker, &point, NULL); + meta_cursor_tracker_update_position (tracker, point.x, point.y); } static gboolean diff --git a/src/core/display.c b/src/core/display.c index 630deb20d..521e5d093 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -3743,18 +3743,18 @@ meta_display_get_pointer_window (MetaDisplay *display, MetaBackend *backend = meta_get_backend (); MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend); MetaWindow *window; - int x, y; + graphene_point_t point; if (not_this_one) meta_topic (META_DEBUG_FOCUS, "Focusing mouse window excluding %s\n", not_this_one->desc); - meta_cursor_tracker_get_pointer (cursor_tracker, &x, &y, NULL); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); window = meta_stack_get_default_focus_window_at_point (display->stack, workspace_manager->active_workspace, not_this_one, - x, y); + point.x, point.y); return window; } diff --git a/src/core/window.c b/src/core/window.c index 681805c06..dd1cd625e 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -8183,19 +8183,19 @@ window_focus_on_pointer_rest_callback (gpointer data) MetaDisplay *display = window->display; MetaBackend *backend = meta_get_backend (); MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend); - int root_x, root_y; + graphene_point_t point; guint32 timestamp; if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK) goto out; - meta_cursor_tracker_get_pointer (cursor_tracker, &root_x, &root_y, NULL); + meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL); - if (root_x != focus_data->pointer_x || - root_y != focus_data->pointer_y) + if ((int) point.x != focus_data->pointer_x || + (int) point.y != focus_data->pointer_y) { - focus_data->pointer_x = root_x; - focus_data->pointer_y = root_y; + focus_data->pointer_x = point.x; + focus_data->pointer_y = point.y; return G_SOURCE_CONTINUE; } diff --git a/src/meta/meta-cursor-tracker.h b/src/meta/meta-cursor-tracker.h index 87e408d94..a3b71c4f6 100644 --- a/src/meta/meta-cursor-tracker.h +++ b/src/meta/meta-cursor-tracker.h @@ -50,8 +50,7 @@ CoglTexture *meta_cursor_tracker_get_sprite (MetaCursorTracker *tracker); META_EXPORT void meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, - int *x, - int *y, + graphene_point_t *coords, ClutterModifierType *mods); META_EXPORT diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c index ea9e82c8f..35cee5873 100644 --- a/src/x11/window-x11.c +++ b/src/x11/window-x11.c @@ -2802,7 +2802,7 @@ query_pressed_buttons (MetaWindow *window) ClutterModifierType mods; int button = 0; - meta_cursor_tracker_get_pointer (tracker, NULL, NULL, &mods); + meta_cursor_tracker_get_pointer (tracker, NULL, &mods); if (mods & CLUTTER_BUTTON1_MASK) button |= 1 << 1;