workspacesView: Disable swipe tracker during window dragging
Since a11f417cd0
, both drag and scroll
gestures are added to Main.layoutManager.overviewGroup actor, while
previously drag gesture was added to Main.overview._backgroundGroup
instead. Since we cannot use 2 different actors for dragging and scrolling
anymore. just disable the swipe tracker while dragging a window.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/2151
This commit is contained in:
parent
3eaa19ab0f
commit
2490a2ffda
@ -426,7 +426,14 @@ class WorkspacesDisplay extends St.Widget {
|
|||||||
this._swipeTracker.connect('begin', this._switchWorkspaceBegin.bind(this));
|
this._swipeTracker.connect('begin', this._switchWorkspaceBegin.bind(this));
|
||||||
this._swipeTracker.connect('update', this._switchWorkspaceUpdate.bind(this));
|
this._swipeTracker.connect('update', this._switchWorkspaceUpdate.bind(this));
|
||||||
this._swipeTracker.connect('end', this._switchWorkspaceEnd.bind(this));
|
this._swipeTracker.connect('end', this._switchWorkspaceEnd.bind(this));
|
||||||
this.bind_property('mapped', this._swipeTracker, 'enabled', GObject.BindingFlags.SYNC_CREATE);
|
this.connect('notify::mapped', this._updateSwipeTracker.bind(this));
|
||||||
|
|
||||||
|
this._windowDragBeginId =
|
||||||
|
Main.overview.connect('window-drag-begin',
|
||||||
|
this._windowDragBegin.bind(this));
|
||||||
|
this._windowDragEndId =
|
||||||
|
Main.overview.connect('window-drag-begin',
|
||||||
|
this._windowDragEnd.bind(this));
|
||||||
|
|
||||||
this._primaryIndex = Main.layoutManager.primaryIndex;
|
this._primaryIndex = Main.layoutManager.primaryIndex;
|
||||||
this._workspacesViews = [];
|
this._workspacesViews = [];
|
||||||
@ -443,6 +450,7 @@ class WorkspacesDisplay extends St.Widget {
|
|||||||
this._scrollTimeoutId = 0;
|
this._scrollTimeoutId = 0;
|
||||||
|
|
||||||
this._fullGeometry = null;
|
this._fullGeometry = null;
|
||||||
|
this._inWindowDrag = false;
|
||||||
|
|
||||||
this._gestureActive = false; // touch(pad) gestures
|
this._gestureActive = false; // touch(pad) gestures
|
||||||
this._canScroll = true; // limiting scrolling speed
|
this._canScroll = true; // limiting scrolling speed
|
||||||
@ -470,6 +478,22 @@ class WorkspacesDisplay extends St.Widget {
|
|||||||
|
|
||||||
global.window_manager.disconnect(this._switchWorkspaceId);
|
global.window_manager.disconnect(this._switchWorkspaceId);
|
||||||
global.workspace_manager.disconnect(this._reorderWorkspacesdId);
|
global.workspace_manager.disconnect(this._reorderWorkspacesdId);
|
||||||
|
Main.overview.disconnect(this._windowDragBeginId);
|
||||||
|
Main.overview.disconnect(this._windowDragEndId);
|
||||||
|
}
|
||||||
|
|
||||||
|
_windowDragBegin() {
|
||||||
|
this._inWindowDrag = true;
|
||||||
|
this._updateSwipeTracker();
|
||||||
|
}
|
||||||
|
|
||||||
|
_windowDragEnd() {
|
||||||
|
this._inWindowDrag = false;
|
||||||
|
this._updateSwipeTracker();
|
||||||
|
}
|
||||||
|
|
||||||
|
_updateSwipeTracker() {
|
||||||
|
this._swipeTracker.enabled = this.mapped && !this._inWindowDrag;
|
||||||
}
|
}
|
||||||
|
|
||||||
_workspacesReordered() {
|
_workspacesReordered() {
|
||||||
|
Loading…
Reference in New Issue
Block a user