GNOME Bugzilla – Bug 746112
Button OSD breaks after a hotplug
Last modified: 2015-03-20 14:52:31 UTC
The OSD (and the handling of the PAD buttons in gnome-settings-daemon) is broken when hotplugging Wacom devices. When the tablet is cold plugged, the OSD appears when the user clicks on "Map Buttons..." in the gnome-control-center panel. When it is then unplugged and re-plugged, the OSD is broken. The next unplug/re-plug shows the fallback interface for the "Map Buttons..." interaction. Version tested: gnome-settingsdaemon.x86_64 3.15.91-1.fc22 Note: on F22 alpha, you need to upgrade first libwacom to 0.12 to have the Wacom tablets handled by xf86-input-wacom and not libinput.
So I made a difficult git bisect on g-s-d. Difficult because starting with f867268 (schemas: Remove "display" setting from wacom devices' schema), the OSD does not work at all, until at least 96ff40d (wacom: Remove GsdWacomDevice dependency on GsdDeviceMapper). Anyway, luckily, the first bad commit happened before this, and the result is: commit 9e17dced137ff2fd05ed97c82e90a7725e9f82d7 Author: Carlos Garnacho <carlosg@gnome.org> Date: Wed Dec 17 14:19:52 2014 +0100 common: Make GsdDeviceMapper use devices from GsdDeviceManager This has brought some changes in the xrandr and wacom modules, which now use GsdDevice for device mapping. The use of GdkDevices and XInput properties remain for these settings not yet in the gsettings-desktop-schemas peripherals settings in the wacom case, and those bits have been made to run only on X11 as expected. https://bugzilla.gnome.org/show_bug.cgi?id=742593
Created attachment 299371 [details] [review] device-manager: fix storing/releasing of gdk_devices When emitting the signals "device-added" and "device-removed", the other plugins connected might want to look at the devices stored in the manager->gdk_devices hashtable. That is actually the case for wacom devices. Changing the order of storing/releasing the device and emitting the signals makes everybody happy.
Comment on attachment 299371 [details] [review] device-manager: fix storing/releasing of gdk_devices Makes complete sense, AFAIR/CS there's nothing depending on the opposite, and that'd be really broken anyway. Let's make a freeze break request, setting a-c-n tentatively.
Attachment 299371 [details] pushed as 1ea20ae - device-manager: fix storing/releasing of gdk_devices