summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/wacom/gsd-wacom-manager.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/plugins/wacom/gsd-wacom-manager.c b/plugins/wacom/gsd-wacom-manager.c
index 88909886..6b038761 100644
--- a/plugins/wacom/gsd-wacom-manager.c
+++ b/plugins/wacom/gsd-wacom-manager.c
@@ -1381,8 +1381,25 @@ gsd_wacom_manager_stop (GsdWacomManager *manager)
g_debug ("Stopping wacom manager");
if (p->device_manager != NULL) {
+ GList *devices;
+
g_signal_handler_disconnect (p->device_manager, p->device_added_id);
g_signal_handler_disconnect (p->device_manager, p->device_removed_id);
+
+ devices = gdk_device_manager_list_devices (p->device_manager, GDK_DEVICE_TYPE_SLAVE);
+ for (l = devices; l != NULL; l = l->next) {
+ GsdWacomDeviceType type;
+
+ type = gsd_wacom_device_get_device_type (l->data);
+ if (type == WACOM_TYPE_PAD) {
+ int id;
+
+ id = get_device_id (l->data);
+ grab_button (id, FALSE, manager->priv->screens);
+ }
+ }
+ g_list_free (devices);
+
p->device_manager = NULL;
}