x11/device-manager-xi2: Fix assertions with touch
authorBastien Nocera <hadess@hadess.net>
Thu, 3 May 2012 16:58:12 +0000 (18:58 +0200)
committerBastien Nocera <hadess@hadess.net>
Thu, 3 May 2012 17:32:07 +0000 (19:32 +0200)
When getting touch events, the device manager would try
to pass an invalid device to translate_axes().

clutter_event_set_device() will only update event->touch.device
for touch events, not event->motion.device, as used.

Fixes Totem crashing on mouse motion/button press when using
a touchpad.

https://bugzilla.gnome.org/show_bug.cgi?id=675371

clutter/x11/clutter-device-manager-xi2.c

index 681c690..73e99af 100644 (file)
@@ -1045,7 +1045,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
                                       GINT_TO_POINTER (xev->deviceid));
         clutter_event_set_device (event, device);
 
-        event->touch.axes = translate_axes (event->motion.device,
+        event->touch.axes = translate_axes (event->touch.device,
                                             event->motion.x,
                                             event->motion.y,
                                             stage_x11,
@@ -1098,7 +1098,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
                                       GINT_TO_POINTER (xev->deviceid));
         clutter_event_set_device (event, device);
 
-        event->touch.axes = translate_axes (event->motion.device,
+        event->touch.axes = translate_axes (event->touch.device,
                                             event->motion.x,
                                             event->motion.y,
                                             stage_x11,