[gnome-shell] workspacesView: Don't invalidate allocation before using it for gesture
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] workspacesView: Don't invalidate allocation before using it for gesture
- Date: Tue, 16 Feb 2021 11:16:54 +0000 (UTC)
commit 8d5fb73695682b99c2a1c6db361474984e2196ac
Author: Sebastian Keller <skeller gnome org>
Date: Tue Feb 16 03:50:52 2021 +0100
workspacesView: Don't invalidate allocation before using it for gesture
Calling startTouchGesture() on the workspacesViews can change the
visibility of the workspaces if not all of them are already shown, such
as when there are more than 3 workspaces or for 3 workspaces if we are
not on the central one. This invalidates the allocation and the width
used as distance for the gesture would become 0, resulting in drag
gestures immediately jumping to the first or last workspace due to a
division by 0.
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3721
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1682>
js/ui/workspacesView.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 0cfe91561b..177fd413d9 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -716,12 +716,12 @@ class WorkspacesDisplay extends St.Widget {
? Clutter.Orientation.HORIZONTAL
: Clutter.Orientation.VERTICAL;
+ const distance = global.workspace_manager.layout_rows === -1
+ ? this.height : this.width;
+
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].startTouchGesture();
- let distance = global.workspace_manager.layout_rows === -1
- ? this.height : this.width;
-
let progress = adjustment.value / adjustment.page_size;
let points = Array.from(
{ length: workspaceManager.n_workspaces }, (v, i) => i);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]