Commit 76d48f79 authored by Carlos Garnacho's avatar Carlos Garnacho
Browse files

evdev: Set core device on translated events

And ensure the core pointer shares the same stage than the slave
device when those events are set. This fixes problems on the evdev
backend where the last touch unsets the stage on the device, but
nothing sets it back afterwards.

https://bugzilla.gnome.org/show_bug.cgi?id=728968
parent 8857b19d
......@@ -380,8 +380,11 @@ notify_absolute_motion (ClutterInputDevice *input_device,
_clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
event->motion.x = x;
event->motion.y = y;
clutter_event_set_device (event, seat->core_pointer);
clutter_event_set_source_device (event, input_device);
_clutter_input_device_set_stage (seat->core_pointer, stage);
queue_event (event);
}
......@@ -456,6 +459,7 @@ notify_scroll (ClutterInputDevice *input_device,
clutter_input_device_get_coords (seat->core_pointer, NULL, &point);
event->scroll.x = point.x;
event->scroll.y = point.y;
clutter_event_set_device (event, seat->core_pointer);
clutter_event_set_source_device (event, input_device);
queue_event (event);
......@@ -535,6 +539,7 @@ notify_button (ClutterInputDevice *input_device,
clutter_input_device_get_coords (seat->core_pointer, NULL, &point);
event->button.x = point.x;
event->button.y = point.y;
clutter_event_set_device (event, seat->core_pointer);
clutter_event_set_source_device (event, input_device);
queue_event (event);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment