mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-01-10 22:10:15 +01:00
touchpad: remove the lid switch listener on device_removed
Sequence triggered by the xorg driver, but basically: if the touchpad is destroyed before the lid switch, the event listener wasn't removed and an assertion was triggered. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
87b04a0cb2
commit
9d1fdb0c6d
2 changed files with 32 additions and 0 deletions
|
|
@ -1768,6 +1768,12 @@ tp_interface_device_removed(struct evdev_device *device,
|
|||
tp->dwt.keyboard = NULL;
|
||||
}
|
||||
|
||||
if (removed_device == tp->lid_switch.lid_switch) {
|
||||
libinput_device_remove_event_listener(
|
||||
&tp->lid_switch.lid_switch_listener);
|
||||
tp->lid_switch.lid_switch = NULL;
|
||||
}
|
||||
|
||||
if (tp->sendevents.current_mode !=
|
||||
LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -407,6 +407,30 @@ START_TEST(lid_open_on_key_touchpad_enabled)
|
|||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(lid_suspend_with_touchpad)
|
||||
{
|
||||
struct libinput *li;
|
||||
struct litest_device *touchpad, *sw;
|
||||
|
||||
li = litest_create_context();
|
||||
|
||||
sw = litest_add_device(li, LITEST_LID_SWITCH);
|
||||
litest_drain_events(li);
|
||||
|
||||
touchpad = litest_add_device(li, LITEST_SYNAPTICS_I2C);
|
||||
litest_delete_device(touchpad);
|
||||
touchpad = litest_add_device(li, LITEST_SYNAPTICS_I2C);
|
||||
litest_drain_events(li);
|
||||
|
||||
litest_delete_device(sw);
|
||||
litest_drain_events(li);
|
||||
litest_delete_device(touchpad);
|
||||
litest_drain_events(li);
|
||||
|
||||
libinput_unref(li);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(lid_update_hw_on_key)
|
||||
{
|
||||
struct litest_device *sw = litest_current_device();
|
||||
|
|
@ -469,5 +493,7 @@ litest_setup_tests_lid(void)
|
|||
litest_add("lid:keyboard", lid_open_on_key, LITEST_SWITCH, LITEST_ANY);
|
||||
litest_add("lid:keyboard", lid_open_on_key_touchpad_enabled, LITEST_SWITCH, LITEST_ANY);
|
||||
|
||||
litest_add_no_device("lid:disable_touchpad", lid_suspend_with_touchpad);
|
||||
|
||||
litest_add_for_device("lid:buggy", lid_update_hw_on_key, LITEST_LID_SWITCH_SURFACE3);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue