From 9497ddd68af81332ccdce6e47e7462c8a3eecc1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 28 Apr 2020 01:04:08 +0200 Subject: [PATCH] overviewControls: Remove transitions before updating adjustment value The workspace switcher blocks state updates while the indicator is animating. Since commit 9c1940ef9db5 the indicator is considered to be animating when the workspace adjustment's value doesn't equal the active workspace. There is one case though where this breaks badly: When a workspace is inserted before the active one, the adjustment's upper and value properties are changed without transitions. But if that change happens while there's an ongoing transition to the previously active workspace, the value gets out of sync with the active workspace and we end up blocking state updates indefinitely. Fix this by removing any transitions before setting the adjustment value. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2625 (cherry picked from commit 2e80995f190f56812c94eb344768e6c94f0683f0) --- js/ui/overviewControls.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js index cc430f918..d1aac3593 100644 --- a/js/ui/overviewControls.js +++ b/js/ui/overviewControls.js @@ -473,6 +473,7 @@ class ControlsManager extends St.Widget { // A workspace might have been inserted or removed before the active // one, causing the adjustment to go out of sync, so update the value + this._workspaceAdjustment.remove_transition('value'); this._workspaceAdjustment.value = activeIndex; }