mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-08 13:38:40 +02: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
|
int
|
||||||
evdev_device_suspend(struct evdev_device *device)
|
evdev_device_suspend(struct evdev_device *device)
|
||||||
{
|
{
|
||||||
if (device->source)
|
if (device->source) {
|
||||||
libinput_remove_source(device->base.seat->libinput,
|
libinput_remove_source(device->base.seat->libinput,
|
||||||
device->source);
|
device->source);
|
||||||
|
device->source = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
release_pressed_keys(device);
|
release_pressed_keys(device);
|
||||||
|
|
||||||
if (device->mtdev)
|
if (device->mtdev) {
|
||||||
mtdev_close_delete(device->mtdev);
|
mtdev_close_delete(device->mtdev);
|
||||||
close_restricted(device->base.seat->libinput, device->fd);
|
device->mtdev = NULL;
|
||||||
device->fd = -1;
|
}
|
||||||
|
|
||||||
|
if (device->fd != -1) {
|
||||||
|
close_restricted(device->base.seat->libinput, device->fd);
|
||||||
|
device->fd = -1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue