wayland: Register touchpoint info on CLUTTER_ENTER
The first event happening for a new touch will be the CLUTTER_ENTER event generated when picking it. Use this event for registration of the touch info, so that MetaWaylandEventHandler.get_focus_surface may get the right focus surface for the device/sequence on the first try. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3889>
This commit is contained in:
parent
77b21ef8dc
commit
2e82a2049f
2 changed files with 17 additions and 4 deletions
|
@ -435,12 +435,24 @@ meta_wayland_seat_update (MetaWaylandSeat *seat,
|
|||
|
||||
switch (clutter_event_type (event))
|
||||
{
|
||||
case CLUTTER_ENTER:
|
||||
case CLUTTER_LEAVE:
|
||||
if (clutter_event_get_event_sequence (event))
|
||||
{
|
||||
if (meta_wayland_seat_has_touch (seat))
|
||||
meta_wayland_touch_update (seat->touch, event);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (meta_wayland_seat_has_pointer (seat))
|
||||
meta_wayland_pointer_update (seat->pointer, event);
|
||||
}
|
||||
break;
|
||||
|
||||
case CLUTTER_MOTION:
|
||||
case CLUTTER_BUTTON_PRESS:
|
||||
case CLUTTER_BUTTON_RELEASE:
|
||||
case CLUTTER_SCROLL:
|
||||
case CLUTTER_ENTER:
|
||||
case CLUTTER_LEAVE:
|
||||
if (meta_wayland_seat_has_pointer (seat))
|
||||
meta_wayland_pointer_update (seat->pointer, event);
|
||||
break;
|
||||
|
|
|
@ -226,7 +226,7 @@ meta_wayland_touch_update (MetaWaylandTouch *touch,
|
|||
sequence = clutter_event_get_event_sequence (event);
|
||||
event_type = clutter_event_type (event);
|
||||
|
||||
if (event_type == CLUTTER_TOUCH_BEGIN)
|
||||
if (event_type == CLUTTER_ENTER)
|
||||
{
|
||||
MetaWaylandSurface *surface = NULL;
|
||||
MetaBackend *backend;
|
||||
|
@ -256,7 +256,8 @@ meta_wayland_touch_update (MetaWaylandTouch *touch,
|
|||
if (!touch_info)
|
||||
return;
|
||||
|
||||
if (event_type != CLUTTER_TOUCH_BEGIN &&
|
||||
if ((event_type == CLUTTER_TOUCH_UPDATE ||
|
||||
event_type == CLUTTER_TOUCH_END) &&
|
||||
!touch_info->begin_delivered)
|
||||
{
|
||||
g_hash_table_remove (touch->touches, sequence);
|
||||
|
|
Loading…
Reference in a new issue