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
This commit is contained in:
parent
9232cbf8a7
commit
2e80995f19
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user