workspace: Keep track of the dragging touch sequence
draggable.startDrag() is called directly here (i.e. manualMode is not set), we must keep track of the touch event and pass it to startDrag() then. https://bugzilla.gnome.org/show_bug.cgi?id=756748
This commit is contained in:
parent
508a13ae72
commit
9d203ddc0f
@ -361,6 +361,9 @@ const WindowClone = new Lang.Class({
|
|||||||
// a long-press canceled when the pointer movement
|
// a long-press canceled when the pointer movement
|
||||||
// exceeds dnd-drag-threshold to manually start the drag
|
// exceeds dnd-drag-threshold to manually start the drag
|
||||||
if (state == Clutter.LongPressState.CANCEL) {
|
if (state == Clutter.LongPressState.CANCEL) {
|
||||||
|
let event = Clutter.get_current_event();
|
||||||
|
this._dragTouchSequence = event.get_event_sequence();
|
||||||
|
|
||||||
// A click cancels a long-press before any click handler is
|
// A click cancels a long-press before any click handler is
|
||||||
// run - make sure to not start a drag in that case
|
// run - make sure to not start a drag in that case
|
||||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
|
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
|
||||||
@ -369,7 +372,7 @@ const WindowClone = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
let [x, y] = action.get_coords();
|
let [x, y] = action.get_coords();
|
||||||
action.release();
|
action.release();
|
||||||
this._draggable.startDrag(x, y, global.get_current_time());
|
this._draggable.startDrag(x, y, global.get_current_time(), this._dragTouchSequence);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user