[gnome-shell] workspacesView: Use calculated workspace state for progress
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] workspacesView: Use calculated workspace state for progress
- Date: Thu, 11 Feb 2021 15:55:50 +0000 (UTC)
commit ca066a4ba616f227635240abfb68443140f528bb
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Fri Jan 15 15:58:33 2021 -0300
workspacesView: Use calculated workspace state for progress
It works just like before, except that this has the nice side effect
of not changing the workspace mode when leaving the overview from
the app grid state.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>
js/ui/workspacesView.js | 30 +++++++++++++++++++++++-------
1 file changed, 23 insertions(+), 7 deletions(-)
---
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 802d15eedf..743d997204 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -233,16 +233,32 @@ class WorkspacesView extends WorkspacesViewBase {
return Math.clamp(spacing, WORKSPACE_MIN_SPACING, WORKSPACE_MAX_SPACING);
}
- _updateWorkspacesState() {
+ _getWorkspaceModeForOverviewState(state) {
const { ControlsState } = OverviewControls;
+ switch (state) {
+ case ControlsState.HIDDEN:
+ return 0;
+ case ControlsState.WINDOW_PICKER:
+ return 1;
+ case ControlsState.APP_GRID:
+ return 0;
+ }
+
+ return 0;
+ }
+
+ _updateWorkspacesState() {
const adj = this._scrollAdjustment;
const fitMode = this._fitModeAdjustment.value;
- const overviewState = this._overviewAdjustment.value;
- const normalizedWorkspaceState = 1 -
- Math.abs(ControlsState.WINDOW_PICKER - overviewState);
- const workspaceMode = Util.lerp(normalizedWorkspaceState, 0, fitMode);
+ const { initialState, finalState, progress } =
+ this._overviewAdjustment.getStateTransitionParams();
+
+ const workspaceMode = (1 - fitMode) * Util.lerp(
+ this._getWorkspaceModeForOverviewState(initialState),
+ this._getWorkspaceModeForOverviewState(finalState),
+ progress);
// Fade and scale inactive workspaces
this._workspaces.forEach((w, index) => {
@@ -250,9 +266,9 @@ class WorkspacesView extends WorkspacesViewBase {
const distanceToCurrentWorkspace = Math.abs(adj.value - index);
- const progress = 1 - Math.clamp(distanceToCurrentWorkspace, 0, 1);
+ const scaleProgress = 1 - Math.clamp(distanceToCurrentWorkspace, 0, 1);
- const scale = Util.lerp(WORKSPACE_INACTIVE_SCALE, 1, progress);
+ const scale = Util.lerp(WORKSPACE_INACTIVE_SCALE, 1, scaleProgress);
w.set_scale(scale, scale);
});
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]