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
This commit is contained in:
parent
e0944b6097
commit
bbc4116f10
@ -484,30 +484,23 @@ get_pointer_position_gdk (int *x,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
get_pointer_position_clutter (int *x,
|
get_pointer_position_clutter (graphene_point_t *point,
|
||||||
int *y,
|
int *mods)
|
||||||
int *mods)
|
|
||||||
{
|
{
|
||||||
ClutterSeat *seat;
|
ClutterSeat *seat;
|
||||||
ClutterInputDevice *cdevice;
|
ClutterInputDevice *cdevice;
|
||||||
graphene_point_t point;
|
|
||||||
|
|
||||||
seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
||||||
cdevice = clutter_seat_get_pointer (seat);
|
cdevice = clutter_seat_get_pointer (seat);
|
||||||
|
|
||||||
clutter_input_device_get_coords (cdevice, NULL, &point);
|
clutter_input_device_get_coords (cdevice, NULL, point);
|
||||||
if (x)
|
|
||||||
*x = point.x;
|
|
||||||
if (y)
|
|
||||||
*y = point.y;
|
|
||||||
if (mods)
|
if (mods)
|
||||||
*mods = clutter_input_device_get_modifier_state (cdevice);
|
*mods = clutter_input_device_get_modifier_state (cdevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker,
|
meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker,
|
||||||
int *x,
|
graphene_point_t *coords,
|
||||||
int *y,
|
|
||||||
ClutterModifierType *mods)
|
ClutterModifierType *mods)
|
||||||
{
|
{
|
||||||
/* We can't use the clutter interface when not running as a wayland compositor,
|
/* 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.
|
we forward to xwayland.
|
||||||
*/
|
*/
|
||||||
if (meta_is_wayland_compositor ())
|
if (meta_is_wayland_compositor ())
|
||||||
get_pointer_position_clutter (x, y, (int*)mods);
|
{
|
||||||
|
get_pointer_position_clutter (coords, (int*)mods);
|
||||||
|
}
|
||||||
else
|
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
|
void
|
||||||
|
@ -457,10 +457,11 @@ meta_backend_native_get_current_logical_monitor (MetaBackend *backend)
|
|||||||
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
||||||
MetaMonitorManager *monitor_manager =
|
MetaMonitorManager *monitor_manager =
|
||||||
meta_backend_get_monitor_manager (backend);
|
meta_backend_get_monitor_manager (backend);
|
||||||
int x, y;
|
graphene_point_t point;
|
||||||
|
|
||||||
meta_cursor_tracker_get_pointer (cursor_tracker, &x, &y, NULL);
|
meta_cursor_tracker_get_pointer (cursor_tracker, &point, NULL);
|
||||||
return meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y);
|
return meta_monitor_manager_get_logical_monitor_at (monitor_manager,
|
||||||
|
point.x, point.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -677,7 +677,7 @@ meta_backend_x11_get_current_logical_monitor (MetaBackend *backend)
|
|||||||
MetaBackendX11 *x11 = META_BACKEND_X11 (backend);
|
MetaBackendX11 *x11 = META_BACKEND_X11 (backend);
|
||||||
MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11);
|
MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11);
|
||||||
MetaCursorTracker *cursor_tracker;
|
MetaCursorTracker *cursor_tracker;
|
||||||
int x, y;
|
graphene_point_t point;
|
||||||
MetaMonitorManager *monitor_manager;
|
MetaMonitorManager *monitor_manager;
|
||||||
MetaLogicalMonitor *logical_monitor;
|
MetaLogicalMonitor *logical_monitor;
|
||||||
|
|
||||||
@ -685,10 +685,11 @@ meta_backend_x11_get_current_logical_monitor (MetaBackend *backend)
|
|||||||
return priv->cached_current_logical_monitor;
|
return priv->cached_current_logical_monitor;
|
||||||
|
|
||||||
cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
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);
|
monitor_manager = meta_backend_get_monitor_manager (backend);
|
||||||
logical_monitor =
|
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)
|
if (!logical_monitor && monitor_manager->logical_monitors)
|
||||||
logical_monitor = monitor_manager->logical_monitors->data;
|
logical_monitor = monitor_manager->logical_monitors->data;
|
||||||
|
@ -69,10 +69,10 @@ static void
|
|||||||
update_position (MetaCursorTrackerX11 *tracker_x11)
|
update_position (MetaCursorTrackerX11 *tracker_x11)
|
||||||
{
|
{
|
||||||
MetaCursorTracker *tracker = META_CURSOR_TRACKER (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_get_pointer (tracker, &point, NULL);
|
||||||
meta_cursor_tracker_update_position (tracker, x, y);
|
meta_cursor_tracker_update_position (tracker, point.x, point.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -3743,18 +3743,18 @@ meta_display_get_pointer_window (MetaDisplay *display,
|
|||||||
MetaBackend *backend = meta_get_backend ();
|
MetaBackend *backend = meta_get_backend ();
|
||||||
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
int x, y;
|
graphene_point_t point;
|
||||||
|
|
||||||
if (not_this_one)
|
if (not_this_one)
|
||||||
meta_topic (META_DEBUG_FOCUS,
|
meta_topic (META_DEBUG_FOCUS,
|
||||||
"Focusing mouse window excluding %s\n", not_this_one->desc);
|
"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,
|
window = meta_stack_get_default_focus_window_at_point (display->stack,
|
||||||
workspace_manager->active_workspace,
|
workspace_manager->active_workspace,
|
||||||
not_this_one,
|
not_this_one,
|
||||||
x, y);
|
point.x, point.y);
|
||||||
|
|
||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
@ -8183,19 +8183,19 @@ window_focus_on_pointer_rest_callback (gpointer data)
|
|||||||
MetaDisplay *display = window->display;
|
MetaDisplay *display = window->display;
|
||||||
MetaBackend *backend = meta_get_backend ();
|
MetaBackend *backend = meta_get_backend ();
|
||||||
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker (backend);
|
||||||
int root_x, root_y;
|
graphene_point_t point;
|
||||||
guint32 timestamp;
|
guint32 timestamp;
|
||||||
|
|
||||||
if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK)
|
if (meta_prefs_get_focus_mode () == G_DESKTOP_FOCUS_MODE_CLICK)
|
||||||
goto out;
|
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 ||
|
if ((int) point.x != focus_data->pointer_x ||
|
||||||
root_y != focus_data->pointer_y)
|
(int) point.y != focus_data->pointer_y)
|
||||||
{
|
{
|
||||||
focus_data->pointer_x = root_x;
|
focus_data->pointer_x = point.x;
|
||||||
focus_data->pointer_y = root_y;
|
focus_data->pointer_y = point.y;
|
||||||
return G_SOURCE_CONTINUE;
|
return G_SOURCE_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,8 +50,7 @@ CoglTexture *meta_cursor_tracker_get_sprite (MetaCursorTracker *tracker);
|
|||||||
|
|
||||||
META_EXPORT
|
META_EXPORT
|
||||||
void meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker,
|
void meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker,
|
||||||
int *x,
|
graphene_point_t *coords,
|
||||||
int *y,
|
|
||||||
ClutterModifierType *mods);
|
ClutterModifierType *mods);
|
||||||
|
|
||||||
META_EXPORT
|
META_EXPORT
|
||||||
|
@ -2802,7 +2802,7 @@ query_pressed_buttons (MetaWindow *window)
|
|||||||
ClutterModifierType mods;
|
ClutterModifierType mods;
|
||||||
int button = 0;
|
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)
|
if (mods & CLUTTER_BUTTON1_MASK)
|
||||||
button |= 1 << 1;
|
button |= 1 << 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user