X11 gsd-device-manager cannot resolve the source device for an event
This appears to be the cause for #2035:
Under X11 when bringing a tablet tool into proximity, the control-center calls through to update_current_tool()
which calls gsd_device_manager_lookup_gdk_device()
.
That resolves to gsd_device_manager_real_lookup_device()
which calls this code under X11:
node_path = xdevice_get_device_node (gdk_x11_device_get_id (gdk_device));
This looks up the Event Node
property on the device.
However: The problem here: gdk_device
is the Virtual Core Pointer, not the actual tool and the VCP does not have this property. Thus we return NULL
and never update the current tool. As a result the tool never shows in the control center.
The correct fix here would be to use the XI2 source id of the proximity event. No idea how to get to that, either from the callback or from the GdkDevice
that is the VCP, any hints would be appreciated.