mutter/clutter/x11
Carlos Garnacho 488639eb63 x11: Avoid invalid ClutterInputDevice pointers in the device list
Due to the way add_device() invariably adds to the master/slave device
lists, while keeping ClutterInputDevices 1:1 with device IDs, it may
leave invalid pointers in the list if add_device() is called multiple
times for the same device ID. There are two situations where this may
happen:

1) If devices are disabled and later enabled: devices are added invariably
   to the master/slave lists on constructed(), but then on XIDeviceEnabled
   they'd get added yet again.
2) Racy cases where the ClutterDeviceManager is created around the same time
   XIHierarchyEvents are sent. When getting the XIDeviceInfo on constructed(),
   these devices may already appear as enabled, even though XIDeviceEnabled
   is seen through XIHierarchyEvents processed in the event loop sortly after.

   This last case can be seen when starting gnome-shell on a different tty,
   and entering in the one it's been spawned on, clutter initialization
   happens around the same time devices are added back because of the tty
   switch, and multiple extra ClutterInputDevices are created.

https://bugzilla.gnome.org/show_bug.cgi?id=724971
2014-02-25 10:18:20 +01:00
..
xsettings x11: Add the XSETTINGS machinery 2010-06-21 15:55:36 +01:00
clutter-backend-x11.c x11: Fix bad logic in axis check 2014-02-10 17:43:16 +00:00
clutter-backend-x11.h x11: Add support for touch events 2012-03-19 14:29:24 +00:00
clutter-device-manager-core-x11.c x11: Apply the window scaling factor 2013-09-19 22:51:52 +01:00
clutter-device-manager-core-x11.h x11: Remove more private symbols 2011-01-25 11:00:20 +00:00
clutter-device-manager-xi2.c x11: Avoid invalid ClutterInputDevice pointers in the device list 2014-02-25 10:18:20 +01:00
clutter-device-manager-xi2.h Clean up the copyright and licensing blurbs 2011-01-21 10:25:43 +00:00
clutter-event-x11.c x11: Add EventSequence → touch detail accessor 2012-09-05 09:43:47 +01:00
clutter-glx-texture-pixmap.c Deprecate ClutterTexture's API 2012-07-11 13:22:21 +01:00
clutter-glx-texture-pixmap.h x11: Remove CLUTTER_DISABLE_DEPRECATED usage 2012-01-31 10:34:45 +00:00
clutter-glx.h Rework the interaction between the Cogl and GDK / X11 backends. 2011-11-03 13:45:17 +00:00
clutter-input-device-core-x11.c x11: Remove unused variable 2013-07-12 09:57:23 +01:00
clutter-input-device-core-x11.h input-device-x11: Remove more dead code 2013-07-11 14:09:43 -04:00
clutter-input-device-xi2.c input-device-xi2: Calculate the correct state for button events 2013-11-14 14:30:30 -05:00
clutter-input-device-xi2.h ClutterEvent: add API to query the full keyboard state when the event was generated 2013-09-09 13:18:23 +02:00
clutter-keymap-x11.c x11/clutter-keymap-x11: Honor XkbNewKeyboardNotify events 2013-02-24 18:35:53 +01:00
clutter-keymap-x11.h x11: Ignore num lock / scroll lock for event state 2013-01-14 12:56:07 -05:00
clutter-settings-x11.h settings: Add window scaling related settings 2014-01-20 12:26:46 +00:00
clutter-stage-x11.c x11/stage: Store new size on unrealized resize() 2014-01-23 12:17:09 +00:00
clutter-stage-x11.h x11/stage: Remove CLUTTER_SCALE handling 2014-01-20 12:26:46 +00:00
clutter-x11-texture-pixmap.c Use the new macros for adding private data 2013-07-03 18:04:32 +01:00
clutter-x11-texture-pixmap.h x11: Clean up TexturePixmap header and private data structure 2010-07-21 15:14:36 +01:00
clutter-x11.h Enable XInput support by default 2012-12-18 01:27:31 +00:00