device/xi2: Blow the cached devices list
authorEmmanuele Bassi <ebassi@linux.intel.com>
Tue, 18 Jan 2011 13:01:27 +0000 (13:01 +0000)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Fri, 21 Jan 2011 10:25:44 +0000 (10:25 +0000)
Every time we add or remove a device we should clear the cached list
that we return in get_devices(), so that it gets repopulated.

clutter/x11/clutter-device-manager-xi2.c

index 9063cd8..0b033f4 100644 (file)
@@ -272,6 +272,10 @@ add_device (ClutterDeviceManagerXI2 *manager_xi2,
           _clutter_input_device_add_slave (master, device);
         }
 
+      /* blow the cache */
+      g_slist_free (manager_xi2->all_devices);
+      manager_xi2->all_devices = NULL;
+
       g_signal_emit_by_name (manager_xi2, "device-added", device);
     }
 
@@ -294,6 +298,10 @@ remove_device (ClutterDeviceManagerXI2 *manager_xi2,
       manager_xi2->slave_devices =
         g_list_remove (manager_xi2->slave_devices, device);
 
+      /* blow the cache */
+      g_slist_free (manager_xi2->all_devices);
+      manager_xi2->all_devices = NULL;
+
       g_signal_emit_by_name (manager_xi2, "device-removed", device);
 
       g_object_run_dispose (G_OBJECT (device));