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('update', this._switchWorkspaceUpdate.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._workspacesViews = [];
|
||||
@ -443,6 +450,7 @@ class WorkspacesDisplay extends St.Widget {
|
||||
this._scrollTimeoutId = 0;
|
||||
|
||||
this._fullGeometry = null;
|
||||
this._inWindowDrag = false;
|
||||
|
||||
this._gestureActive = false; // touch(pad) gestures
|
||||
this._canScroll = true; // limiting scrolling speed
|
||||
@ -470,6 +478,22 @@ class WorkspacesDisplay extends St.Widget {
|
||||
|
||||
global.window_manager.disconnect(this._switchWorkspaceId);
|
||||
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() {
|
||||
|
Loading…
Reference in New Issue
Block a user