mirror of
https://github.com/brl/mutter.git
synced 2024-11-09 23:46:33 -05:00
clutter/evdev: Ignore unknown touch points
We might receive touch events for unknown touch points, for example when starting mutter while touching the screen (resulting in no touch-down event ever being received). Avoid crashing when this happens by just dropping these events on the floor. https://bugzilla.gnome.org/show_bug.cgi?id=791371
This commit is contained in:
parent
5f05112b9a
commit
4e3b26d2ed
@ -1459,6 +1459,8 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
|||||||
slot = libinput_event_touch_get_slot (touch_event);
|
slot = libinput_event_touch_get_slot (touch_event);
|
||||||
time_us = libinput_event_touch_get_time_usec (touch_event);
|
time_us = libinput_event_touch_get_time_usec (touch_event);
|
||||||
touch_state = clutter_seat_evdev_get_touch (seat, slot);
|
touch_state = clutter_seat_evdev_get_touch (seat, slot);
|
||||||
|
if (!touch_state)
|
||||||
|
break;
|
||||||
|
|
||||||
notify_touch_event (device, CLUTTER_TOUCH_END, time_us, slot,
|
notify_touch_event (device, CLUTTER_TOUCH_END, time_us, slot,
|
||||||
touch_state->coords.x, touch_state->coords.y);
|
touch_state->coords.x, touch_state->coords.y);
|
||||||
@ -1497,6 +1499,9 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
|||||||
stage_height);
|
stage_height);
|
||||||
|
|
||||||
touch_state = clutter_seat_evdev_get_touch (seat, slot);
|
touch_state = clutter_seat_evdev_get_touch (seat, slot);
|
||||||
|
if (!touch_state)
|
||||||
|
break;
|
||||||
|
|
||||||
touch_state->coords.x = x;
|
touch_state->coords.x = x;
|
||||||
touch_state->coords.y = y;
|
touch_state->coords.y = y;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user