From 74e88dd18f2d66d8ab861dacfab3e1ba07065ac5 Mon Sep 17 00:00:00 2001 From: Benoit Gschwind Date: Wed, 25 Oct 2017 22:13:30 +0200 Subject: backend: Reset current device id when current device removed Bluetooth mouse usually goes in sleep state after a timeout, when that happen the mouse is disconnected and on_device_removed function is called. Before the patch if a touch device is available the on_device_removed function hide the cursor. The issue is that the cursor does not reappear once the bluetooth mouse is reconnected because MetaBackend::current_device_id is not invalidated when on_device_removed was called. The patch set MetaBackend::current_device_id to 0 if the current device is removed. This will make update_last_device to be triggered as soon as another input device is used or the bluetooth mouse reconnect, as consequence that the cursor reappear. The id 0 is never given to devices and can safely used as undefine id. https://bugzilla.gnome.org/show_bug.cgi?id=761067 --- src/backends/meta-backend.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c index c856823e2..798dc5ffd 100644 --- a/src/backends/meta-backend.c +++ b/src/backends/meta-backend.c @@ -337,6 +337,8 @@ on_device_removed (ClutterDeviceManager *device_manager, gboolean has_touchscreen, has_pointing_device; ClutterInputDeviceType device_type; + priv->current_device_id = 0; + device_type = clutter_input_device_get_device_type (device); has_touchscreen = check_has_slave_touchscreen (device_manager); -- cgit v1.2.1