diff --git a/js/ui/dnd.js b/js/ui/dnd.js index 554e87773..614ea621d 100644 --- a/js/ui/dnd.js +++ b/js/ui/dnd.js @@ -125,6 +125,16 @@ var _Draggable = class _Draggable { } _onTouchEvent(actor, event) { + // We only handle touch events here on wayland. On X11 + // we do get emulated pointer events, which already works + // for single-touch cases. Besides, the X11 passive touch grab + // set up by Mutter will make us see first the touch events + // and later the pointer events, so it will look like two + // unrelated series of events, we want to avoid double handling + // in these cases. + if (!Meta.is_wayland_compositor()) + return Clutter.EVENT_PROPAGATE; + if (event.type() != Clutter.EventType.TOUCH_BEGIN || !global.display.is_pointer_emulating_sequence(event.get_event_sequence())) return Clutter.EVENT_PROPAGATE;