wayland: Add getter for the current surface of a tablet device
That would be the surface under the tool that is being currently used on the device. This will be used by MetaWaylandSeat to implement the default MetaWaylandEventInterface. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3420>
This commit is contained in:
parent
fe71588a2d
commit
20f7a60e11
@ -603,3 +603,25 @@ meta_wayland_tablet_seat_get_grab_info (MetaWaylandTabletSeat *tablet_seat,
|
|||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MetaWaylandSurface *
|
||||||
|
meta_wayland_tablet_seat_get_current_surface (MetaWaylandTabletSeat *tablet_seat,
|
||||||
|
ClutterInputDevice *device)
|
||||||
|
{
|
||||||
|
MetaWaylandTablet *tablet;
|
||||||
|
g_autoptr (GList) tools = NULL;
|
||||||
|
GList *l;
|
||||||
|
|
||||||
|
tools = g_hash_table_get_values (tablet_seat->tools);
|
||||||
|
tablet = meta_wayland_tablet_seat_lookup_tablet (tablet_seat, device);
|
||||||
|
|
||||||
|
for (l = tools; l; l = l->next)
|
||||||
|
{
|
||||||
|
MetaWaylandTabletTool *tool = l->data;
|
||||||
|
|
||||||
|
if (meta_wayland_tablet_tool_has_current_tablet (tool, tablet))
|
||||||
|
return meta_wayland_tablet_tool_get_current_surface (tool);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
@ -84,3 +84,6 @@ gboolean meta_wayland_tablet_seat_get_grab_info (MetaWaylandTabletSeat *tablet_s
|
|||||||
ClutterInputDevice **device_out,
|
ClutterInputDevice **device_out,
|
||||||
float *x,
|
float *x,
|
||||||
float *y);
|
float *y);
|
||||||
|
|
||||||
|
MetaWaylandSurface * meta_wayland_tablet_seat_get_current_surface (MetaWaylandTabletSeat *tablet_seat,
|
||||||
|
ClutterInputDevice *device);
|
||||||
|
@ -937,3 +937,16 @@ meta_wayland_tablet_tool_can_popup (MetaWaylandTabletTool *tool,
|
|||||||
{
|
{
|
||||||
return tool->down_serial == serial || tool->button_serial == serial;
|
return tool->down_serial == serial || tool->button_serial == serial;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
meta_wayland_tablet_tool_has_current_tablet (MetaWaylandTabletTool *tool,
|
||||||
|
MetaWaylandTablet *tablet)
|
||||||
|
{
|
||||||
|
return tool->current_tablet == tablet;
|
||||||
|
}
|
||||||
|
|
||||||
|
MetaWaylandSurface *
|
||||||
|
meta_wayland_tablet_tool_get_current_surface (MetaWaylandTabletTool *tool)
|
||||||
|
{
|
||||||
|
return tool->current;
|
||||||
|
}
|
||||||
|
@ -81,3 +81,8 @@ gboolean meta_wayland_tablet_tool_can_grab_surface (MetaWaylandTabletTool *tool,
|
|||||||
uint32_t serial);
|
uint32_t serial);
|
||||||
gboolean meta_wayland_tablet_tool_can_popup (MetaWaylandTabletTool *tool,
|
gboolean meta_wayland_tablet_tool_can_popup (MetaWaylandTabletTool *tool,
|
||||||
uint32_t serial);
|
uint32_t serial);
|
||||||
|
|
||||||
|
gboolean meta_wayland_tablet_tool_has_current_tablet (MetaWaylandTabletTool *tool,
|
||||||
|
MetaWaylandTablet *tablet);
|
||||||
|
|
||||||
|
MetaWaylandSurface * meta_wayland_tablet_tool_get_current_surface (MetaWaylandTabletTool *tool);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user