mirror of
https://github.com/brl/mutter.git
synced 2024-11-22 16:10:41 -05:00
wayland: Add update() phase to MetaWaylandTabletPad
This will be needed to update internal state of pad groups.
This commit is contained in:
parent
08cda496f8
commit
ba9ec00694
@ -388,3 +388,27 @@ meta_wayland_tablet_pad_set_focus (MetaWaylandTabletPad *pad,
|
|||||||
|
|
||||||
meta_wayland_tablet_pad_update_groups_focus (pad);
|
meta_wayland_tablet_pad_update_groups_focus (pad);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_wayland_tablet_pad_update (MetaWaylandTabletPad *pad,
|
||||||
|
const ClutterEvent *event)
|
||||||
|
{
|
||||||
|
MetaWaylandTabletPadGroup *group;
|
||||||
|
guint n_group;
|
||||||
|
|
||||||
|
n_group = clutter_event_get_mode_group (event);
|
||||||
|
group = g_list_nth_data (pad->groups, n_group);
|
||||||
|
|
||||||
|
if (group)
|
||||||
|
meta_wayland_tablet_pad_group_update (group, event);
|
||||||
|
|
||||||
|
switch (event->type)
|
||||||
|
{
|
||||||
|
case CLUTTER_PAD_BUTTON_PRESS:
|
||||||
|
case CLUTTER_PAD_BUTTON_RELEASE:
|
||||||
|
case CLUTTER_PAD_RING:
|
||||||
|
case CLUTTER_PAD_STRIP:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -65,6 +65,8 @@ struct wl_resource *
|
|||||||
void meta_wayland_tablet_pad_notify (MetaWaylandTabletPad *pad,
|
void meta_wayland_tablet_pad_notify (MetaWaylandTabletPad *pad,
|
||||||
struct wl_resource *resource);
|
struct wl_resource *resource);
|
||||||
|
|
||||||
|
void meta_wayland_tablet_pad_update (MetaWaylandTabletPad *pad,
|
||||||
|
const ClutterEvent *event);
|
||||||
gboolean meta_wayland_tablet_pad_handle_event (MetaWaylandTabletPad *pad,
|
gboolean meta_wayland_tablet_pad_handle_event (MetaWaylandTabletPad *pad,
|
||||||
const ClutterEvent *event);
|
const ClutterEvent *event);
|
||||||
|
|
||||||
|
@ -387,15 +387,9 @@ meta_wayland_tablet_seat_update (MetaWaylandTabletSeat *tablet_seat,
|
|||||||
ClutterInputDevice *device;
|
ClutterInputDevice *device;
|
||||||
ClutterInputDeviceTool *device_tool;
|
ClutterInputDeviceTool *device_tool;
|
||||||
MetaWaylandTabletTool *tool = NULL;
|
MetaWaylandTabletTool *tool = NULL;
|
||||||
|
MetaWaylandTabletPad *pad = NULL;
|
||||||
|
|
||||||
device = clutter_event_get_source_device (event);
|
device = clutter_event_get_source_device (event);
|
||||||
device_tool = clutter_event_get_device_tool (event);
|
|
||||||
|
|
||||||
if (device && device_tool)
|
|
||||||
tool = meta_wayland_tablet_seat_ensure_tool (tablet_seat, device, device_tool);
|
|
||||||
|
|
||||||
if (!tool)
|
|
||||||
return;
|
|
||||||
|
|
||||||
switch (event->type)
|
switch (event->type)
|
||||||
{
|
{
|
||||||
@ -404,8 +398,25 @@ meta_wayland_tablet_seat_update (MetaWaylandTabletSeat *tablet_seat,
|
|||||||
case CLUTTER_BUTTON_PRESS:
|
case CLUTTER_BUTTON_PRESS:
|
||||||
case CLUTTER_BUTTON_RELEASE:
|
case CLUTTER_BUTTON_RELEASE:
|
||||||
case CLUTTER_MOTION:
|
case CLUTTER_MOTION:
|
||||||
|
device_tool = clutter_event_get_device_tool (event);
|
||||||
|
|
||||||
|
if (device && device_tool)
|
||||||
|
tool = meta_wayland_tablet_seat_ensure_tool (tablet_seat, device, device_tool);
|
||||||
|
|
||||||
|
if (!tool)
|
||||||
|
return;
|
||||||
|
|
||||||
meta_wayland_tablet_tool_update (tool, event);
|
meta_wayland_tablet_tool_update (tool, event);
|
||||||
break;
|
break;
|
||||||
|
case CLUTTER_PAD_BUTTON_PRESS:
|
||||||
|
case CLUTTER_PAD_BUTTON_RELEASE:
|
||||||
|
case CLUTTER_PAD_RING:
|
||||||
|
case CLUTTER_PAD_STRIP:
|
||||||
|
pad = g_hash_table_lookup (tablet_seat->pads, device);
|
||||||
|
if (!pad)
|
||||||
|
return;
|
||||||
|
|
||||||
|
return meta_wayland_tablet_pad_update (pad, event);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user