mirror of
https://github.com/brl/mutter.git
synced 2024-11-26 01:50:42 -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);
|
||||
}
|
||||
|
||||
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,
|
||||
struct wl_resource *resource);
|
||||
|
||||
void meta_wayland_tablet_pad_update (MetaWaylandTabletPad *pad,
|
||||
const ClutterEvent *event);
|
||||
gboolean meta_wayland_tablet_pad_handle_event (MetaWaylandTabletPad *pad,
|
||||
const ClutterEvent *event);
|
||||
|
||||
|
@ -387,15 +387,9 @@ meta_wayland_tablet_seat_update (MetaWaylandTabletSeat *tablet_seat,
|
||||
ClutterInputDevice *device;
|
||||
ClutterInputDeviceTool *device_tool;
|
||||
MetaWaylandTabletTool *tool = NULL;
|
||||
MetaWaylandTabletPad *pad = NULL;
|
||||
|
||||
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)
|
||||
{
|
||||
@ -404,8 +398,25 @@ meta_wayland_tablet_seat_update (MetaWaylandTabletSeat *tablet_seat,
|
||||
case CLUTTER_BUTTON_PRESS:
|
||||
case CLUTTER_BUTTON_RELEASE:
|
||||
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);
|
||||
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:
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user