mirror of
https://github.com/brl/mutter.git
synced 2025-08-04 23:54:40 +00:00
clutter-device-evdev: Get devices from main seat if no real seat is set
In devices such as ARM boards there could be no input devices connected on
startup, leading to a crash when we try to process artificial events that
could be queued (as gnome-shell does when syncing pointer).
Those events still should refer to a device and, in case we don't have one
provided by libinput we should still return the core devices defined in the
main seat.
(cherry picked from commit 3e85ac8131
)
This commit is contained in:

committed by
Marco Trevisan

parent
5142c8c7e7
commit
2a6782dc10
@@ -919,7 +919,6 @@ clutter_device_manager_evdev_get_device (ClutterDeviceManager *manager,
|
|||||||
ClutterDeviceManagerEvdev *manager_evdev;
|
ClutterDeviceManagerEvdev *manager_evdev;
|
||||||
ClutterDeviceManagerEvdevPrivate *priv;
|
ClutterDeviceManagerEvdevPrivate *priv;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
GSList *device_it;
|
|
||||||
|
|
||||||
manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (manager);
|
manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (manager);
|
||||||
priv = manager_evdev->priv;
|
priv = manager_evdev->priv;
|
||||||
@@ -927,17 +926,13 @@ clutter_device_manager_evdev_get_device (ClutterDeviceManager *manager,
|
|||||||
for (l = priv->seats; l; l = l->next)
|
for (l = priv->seats; l; l = l->next)
|
||||||
{
|
{
|
||||||
ClutterSeatEvdev *seat = l->data;
|
ClutterSeatEvdev *seat = l->data;
|
||||||
|
ClutterInputDevice *device = clutter_seat_evdev_get_device (seat, id);
|
||||||
|
|
||||||
for (device_it = seat->devices; device_it; device_it = device_it->next)
|
if (device)
|
||||||
{
|
return device;
|
||||||
ClutterInputDevice *device = device_it->data;
|
|
||||||
|
|
||||||
if (clutter_input_device_get_device_id (device) == id)
|
|
||||||
return device;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return clutter_seat_evdev_get_device (priv->main_seat, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Reference in New Issue
Block a user