clutter: Also pick on TOUCH_BEGIN events

With 734a185915 an optimization was
introduced to only pick on events which can actually cause the pointer
to move. In case of touch events, the first event (TOUCH_BEGIN) will
already move the touchpoint though, and we'll send our crossing
CLUTTER_ENTER event to the actor this TOUCH_BEGIN happened on.

So fix this embarrassing bug that caused touch input to break by also
picking to find an event-actor on TOUCH_BEGIN events.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1733>
This commit is contained in:
Jonas Dreßler 2021-02-16 09:54:41 +01:00
parent 70cfccd9e2
commit 1922896f07

View File

@ -1806,7 +1806,8 @@ _clutter_process_event_details (ClutterActor *stage,
break;
}
if (event->type == CLUTTER_TOUCH_UPDATE)
if (event->type == CLUTTER_TOUCH_BEGIN ||
event->type == CLUTTER_TOUCH_UPDATE)
{
event->any.source =
update_device_for_event (CLUTTER_STAGE (stage), event, TRUE);