After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 746112 - Button OSD breaks after a hotplug
Button OSD breaks after a hotplug
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: wacom
3.15.x
Other Linux
: Normal normal
: ---
Assigned To: Carlos Garnacho
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2015-03-12 20:16 UTC by Benjamin Tissoires
Modified: 2015-03-20 14:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
device-manager: fix storing/releasing of gdk_devices (1.96 KB, patch)
2015-03-14 00:10 UTC, Benjamin Tissoires
accepted-commit_now Details | Review

Description Benjamin Tissoires 2015-03-12 20:16:53 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.
Comment 1 Benjamin Tissoires 2015-03-13 16:57:09 UTC
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
Comment 2 Benjamin Tissoires 2015-03-14 00:10:30 UTC
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 3 Carlos Garnacho 2015-03-19 14:24:54 UTC
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.
Comment 4 Carlos Garnacho 2015-03-20 14:52:31 UTC
Attachment 299371 [details] pushed as 1ea20ae - device-manager: fix storing/releasing of gdk_devices