mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-24 21:40:05 +01:00
evdev: prevent double-suspending a device
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
702e8db2cf
commit
1e37d3bc44
1 changed files with 11 additions and 4 deletions
15
src/evdev.c
15
src/evdev.c
|
|
@ -1168,16 +1168,23 @@ release_pressed_keys(struct evdev_device *device)
|
|||
int
|
||||
evdev_device_suspend(struct evdev_device *device)
|
||||
{
|
||||
if (device->source)
|
||||
if (device->source) {
|
||||
libinput_remove_source(device->base.seat->libinput,
|
||||
device->source);
|
||||
device->source = NULL;
|
||||
}
|
||||
|
||||
release_pressed_keys(device);
|
||||
|
||||
if (device->mtdev)
|
||||
if (device->mtdev) {
|
||||
mtdev_close_delete(device->mtdev);
|
||||
close_restricted(device->base.seat->libinput, device->fd);
|
||||
device->fd = -1;
|
||||
device->mtdev = NULL;
|
||||
}
|
||||
|
||||
if (device->fd != -1) {
|
||||
close_restricted(device->base.seat->libinput, device->fd);
|
||||
device->fd = -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue