overviewControls: Remove transitions before updating adjustment value
The workspace switcher blocks state updates while the indicator is animating. Since commit9c1940ef9d
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 commit2e80995f19
)
This commit is contained in:
parent
890f5b591f
commit
9497ddd68a
@ -473,6 +473,7 @@ class ControlsManager extends St.Widget {
|
|||||||
|
|
||||||
// A workspace might have been inserted or removed before the active
|
// A workspace might have been inserted or removed before the active
|
||||||
// one, causing the adjustment to go out of sync, so update the value
|
// one, causing the adjustment to go out of sync, so update the value
|
||||||
|
this._workspaceAdjustment.remove_transition('value');
|
||||||
this._workspaceAdjustment.value = activeIndex;
|
this._workspaceAdjustment.value = activeIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user