dnd: Only handle touch events in wayland
There are serveral issues around touch passive grab and touch/pointer doubly handling to use these on X11, so we stick to single-touch/pointer there. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1015
This commit is contained in:
parent
d7d996b1d3
commit
60ccdc2deb
10
js/ui/dnd.js
10
js/ui/dnd.js
@ -125,6 +125,16 @@ var _Draggable = class _Draggable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_onTouchEvent(actor, event) {
|
_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 ||
|
if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
|
||||||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
|
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
|
||||||
return Clutter.EVENT_PROPAGATE;
|
return Clutter.EVENT_PROPAGATE;
|
||||||
|
Loading…
Reference in New Issue
Block a user