x11: Set GdkDeviceTool on motion/button events
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 6 Jan 2015 13:57:21 +0000 (14:57 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 6 Apr 2016 13:43:29 +0000 (15:43 +0200)
The last known tool from the device is used here. If no tool is known,
the event will just have a NULL pointer there.

gdk/x11/gdkdevicemanager-xi2.c

index 2dbc3269ea332b228c62376ecf750c5d42b78bc5..b70f5a7517f8e8984a135b56fd1b2b7eea500138 100644 (file)
@@ -1578,6 +1578,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
                                                  GUINT_TO_POINTER (xev->sourceid));
             gdk_event_set_source_device (event, source_device);
             gdk_event_set_seat (event, gdk_device_get_seat (device));
+            gdk_event_set_device_tool (event, source_device->last_tool);
 
             event->button.axes = translate_axes (event->button.device,
                                                  event->button.x,
@@ -1686,6 +1687,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
         event->motion.device = device;
         gdk_event_set_source_device (event, source_device);
         gdk_event_set_seat (event, gdk_device_get_seat (device));
+        gdk_event_set_device_tool (event, source_device->last_tool);
 
         event->motion.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);