[gnome-shell] workspacesView: Always use ZOOM transition
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] workspacesView: Always use ZOOM transition
- Date: Wed, 3 Feb 2021 20:36:19 +0000 (UTC)
commit 3abfc2585814c79642481d2f89c5f49454d50d54
Author: Florian Müllner <fmuellner gnome org>
Date: Sun Jun 28 14:42:44 2020 +0200
workspacesView: Always use ZOOM transition
Workspaces are now always shown, so the code path to fade windows
instead of zooming out is dead now; remove it.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>
js/ui/viewSelector.js | 4 +-
js/ui/workspace.js | 128 ------------------------------------------------
js/ui/workspacesView.js | 75 +++++++---------------------
3 files changed, 21 insertions(+), 186 deletions(-)
---
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index 6655ed31f6..72f068aa49 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -404,7 +404,7 @@ var ViewSelector = GObject.registerClass({
animateToOverview() {
this.show();
this.reset();
- this._workspacesDisplay.animateToOverview(this._showAppsButton.checked);
+ this._workspacesDisplay.animateToOverview();
this._activePage = null;
this._showPage(this._activitiesPage);
@@ -413,7 +413,7 @@ var ViewSelector = GObject.registerClass({
}
animateFromOverview() {
- this._workspacesDisplay.animateFromOverview(false);
+ this._workspacesDisplay.animateFromOverview();
this._showAppsButton.checked = false;
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index b3ca4cca52..f9e7fad4bb 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -24,8 +24,6 @@ var WINDOW_REPOSITIONING_DELAY = 750;
var LAYOUT_SCALE_WEIGHT = 1;
var LAYOUT_SPACE_WEIGHT = 0.1;
-var WINDOW_ANIMATION_MAX_NUMBER_BLENDING = 3;
-
// Window Thumbnail Layout Algorithm
// =================================
//
@@ -1155,123 +1153,6 @@ class Workspace extends St.Widget {
return false;
}
- fadeToOverview() {
- // We don't want to reposition windows while animating in this way.
- this.layout_manager.layout_frozen = true;
- this._overviewShownId = Main.overview.connect('shown', this._doneShowingOverview.bind(this));
- if (this._windows.length == 0)
- return;
-
- if (this.metaWorkspace !== null && !this.metaWorkspace.active)
- return;
-
- this.layout_manager.stateAdjustment.value = 0;
-
- // Special case maximized windows, since it doesn't make sense
- // to animate windows below in the stack
- let topMaximizedWindow;
- // It is ok to treat the case where there is no maximized
- // window as if the bottom-most window was maximized given that
- // it won't affect the result of the animation
- for (topMaximizedWindow = this._windows.length - 1; topMaximizedWindow > 0; topMaximizedWindow--) {
- let metaWindow = this._windows[topMaximizedWindow].metaWindow;
- if (metaWindow.maximized_horizontally && metaWindow.maximized_vertically)
- break;
- }
-
- let nTimeSlots = Math.min(WINDOW_ANIMATION_MAX_NUMBER_BLENDING + 1, this._windows.length -
topMaximizedWindow);
- let windowBaseTime = Overview.ANIMATION_TIME / nTimeSlots;
-
- let topIndex = this._windows.length - 1;
- for (let i = 0; i < this._windows.length; i++) {
- if (i < topMaximizedWindow) {
- // below top-most maximized window, don't animate
- this._windows[i].hideOverlay(false);
- this._windows[i].opacity = 0;
- } else {
- let fromTop = topIndex - i;
- let time;
- if (fromTop < nTimeSlots) // animate top-most windows gradually
- time = windowBaseTime * (nTimeSlots - fromTop);
- else
- time = windowBaseTime;
-
- this._windows[i].opacity = 255;
- this._fadeWindow(i, time, 0);
- }
- }
- }
-
- fadeFromOverview() {
- this.layout_manager.layout_frozen = true;
- this._overviewHiddenId = Main.overview.connect('hidden', this._doneLeavingOverview.bind(this));
- if (this._windows.length == 0)
- return;
-
- for (let i = 0; i < this._windows.length; i++)
- this._windows[i].remove_all_transitions();
-
- if (this._layoutFrozenId > 0) {
- GLib.source_remove(this._layoutFrozenId);
- this._layoutFrozenId = 0;
- }
-
- if (this.metaWorkspace !== null && !this.metaWorkspace.active)
- return;
-
- this.layout_manager.stateAdjustment.value = 0;
-
- // Special case maximized windows, since it doesn't make sense
- // to animate windows below in the stack
- let topMaximizedWindow;
- // It is ok to treat the case where there is no maximized
- // window as if the bottom-most window was maximized given that
- // it won't affect the result of the animation
- for (topMaximizedWindow = this._windows.length - 1; topMaximizedWindow > 0; topMaximizedWindow--) {
- let metaWindow = this._windows[topMaximizedWindow].metaWindow;
- if (metaWindow.maximized_horizontally && metaWindow.maximized_vertically)
- break;
- }
-
- let nTimeSlots = Math.min(WINDOW_ANIMATION_MAX_NUMBER_BLENDING + 1, this._windows.length -
topMaximizedWindow);
- let windowBaseTime = Overview.ANIMATION_TIME / nTimeSlots;
-
- let topIndex = this._windows.length - 1;
- for (let i = 0; i < this._windows.length; i++) {
- if (i < topMaximizedWindow) {
- // below top-most maximized window, don't animate
- this._windows[i].hideOverlay(false);
- this._windows[i].opacity = 0;
- } else {
- let fromTop = topIndex - i;
- let time;
- if (fromTop < nTimeSlots) // animate top-most windows gradually
- time = windowBaseTime * (fromTop + 1);
- else
- time = windowBaseTime * nTimeSlots;
-
- this._windows[i].opacity = 0;
- this._fadeWindow(i, time, 255);
- }
- }
- }
-
- _fadeWindow(index, duration, opacity) {
- let clone = this._windows[index];
- clone.hideOverlay(false);
-
- if (clone.metaWindow.showing_on_its_workspace()) {
- clone.ease({
- opacity,
- duration,
- mode: Clutter.AnimationMode.EASE_OUT_QUAD,
- });
- } else {
- // The window is hidden
- clone.opacity = 0;
- }
- }
-
zoomToOverview() {
const animate =
this.metaWorkspace === null || this.metaWorkspace.active;
@@ -1310,11 +1191,6 @@ class Workspace extends St.Widget {
this._overviewHiddenId = 0;
}
- if (this._overviewShownId) {
- Main.overview.disconnect(this._overviewShownId);
- this._overviewShownId = 0;
- }
-
if (this.metaWorkspace) {
this.metaWorkspace.disconnect(this._windowAddedId);
this.metaWorkspace.disconnect(this._windowRemovedId);
@@ -1332,14 +1208,10 @@ class Workspace extends St.Widget {
_doneLeavingOverview() {
this.layout_manager.layout_frozen = false;
- this.layout_manager.stateAdjustment.value = 0;
- this._windows.forEach(w => (w.opacity = 255));
}
_doneShowingOverview() {
this.layout_manager.layout_frozen = false;
- this.layout_manager.stateAdjustment.value = 1;
- this._windows.forEach(w => (w.opacity = 255));
}
_isMyWindow(window) {
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index f39d305b7b..27b12db6ec 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -11,11 +11,6 @@ var { ANIMATION_TIME } = imports.ui.overview;
var WORKSPACE_SWITCH_TIME = 250;
var SCROLL_TIMEOUT_TIME = 150;
-var AnimationType = {
- ZOOM: 0,
- FADE: 1,
-};
-
const MUTTER_SCHEMA = 'org.gnome.mutter';
var WorkspacesViewBase = GObject.registerClass({
@@ -136,24 +131,16 @@ class WorkspacesView extends WorkspacesViewBase {
return this._workspaces[active];
}
- animateToOverview(animationType) {
- for (let w = 0; w < this._workspaces.length; w++) {
- if (animationType == AnimationType.ZOOM)
- this._workspaces[w].zoomToOverview();
- else
- this._workspaces[w].fadeToOverview();
- }
+ animateToOverview() {
+ for (let w = 0; w < this._workspaces.length; w++)
+ this._workspaces[w].zoomToOverview();
this._updateScrollPosition();
this._updateVisibility();
}
- animateFromOverview(animationType) {
- for (let w = 0; w < this._workspaces.length; w++) {
- if (animationType == AnimationType.ZOOM)
- this._workspaces[w].zoomFromOverview();
- else
- this._workspaces[w].fadeFromOverview();
- }
+ animateFromOverview() {
+ for (let w = 0; w < this._workspaces.length; w++)
+ this._workspaces[w].zoomFromOverview();
}
syncStacking(stackIndices) {
@@ -323,18 +310,12 @@ class ExtraWorkspaceView extends WorkspacesViewBase {
return this._workspace;
}
- animateToOverview(animationType) {
- if (animationType == AnimationType.ZOOM)
- this._workspace.zoomToOverview();
- else
- this._workspace.fadeToOverview();
+ animateToOverview() {
+ this._workspace.zoomToOverview();
}
- animateFromOverview(animationType) {
- if (animationType == AnimationType.ZOOM)
- this._workspace.zoomFromOverview();
- else
- this._workspace.fadeFromOverview();
+ animateFromOverview() {
+ this._workspace.zoomFromOverview();
}
syncStacking(stackIndices) {
@@ -385,7 +366,6 @@ class WorkspacesDisplay extends St.Widget {
Main.overview.connect('window-drag-end',
this._windowDragEnd.bind(this));
this._overviewShownId = Main.overview.connect('shown', () => {
- this._inWindowFade = false;
this._syncWorkspacesActualGeometry();
});
@@ -407,7 +387,6 @@ class WorkspacesDisplay extends St.Widget {
this._actualGeometry = null;
this._inWindowDrag = false;
- this._inWindowFade = false;
this._leavingOverview = false;
this._gestureActive = false; // touch(pad) gestures
@@ -566,22 +545,14 @@ class WorkspacesDisplay extends St.Widget {
primaryWorkspace.visible = visible;
}
- animateToOverview(fadeOnPrimary) {
+ animateToOverview() {
this.show();
this._updateWorkspacesViews();
- for (let i = 0; i < this._workspacesViews.length; i++) {
- let animationType;
- if (fadeOnPrimary && i == this._primaryIndex)
- animationType = AnimationType.FADE;
- else
- animationType = AnimationType.ZOOM;
- this._workspacesViews[i].animateToOverview(animationType);
- }
-
- this._inWindowFade = fadeOnPrimary;
+ for (let i = 0; i < this._workspacesViews.length; i++)
+ this._workspacesViews[i].animateToOverview();
- if (this._actualGeometry && !fadeOnPrimary)
+ if (this._actualGeometry)
this._syncWorkspacesActualGeometry();
this._restackedNotifyId =
@@ -594,17 +565,9 @@ class WorkspacesDisplay extends St.Widget {
this._keyPressEventId = global.stage.connect('key-press-event',
this._onKeyPressEvent.bind(this));
}
- animateFromOverview(fadeOnPrimary) {
- for (let i = 0; i < this._workspacesViews.length; i++) {
- let animationType;
- if (fadeOnPrimary && i == this._primaryIndex)
- animationType = AnimationType.FADE;
- else
- animationType = AnimationType.ZOOM;
- this._workspacesViews[i].animateFromOverview(animationType);
- }
-
- this._inWindowFade = fadeOnPrimary;
+ animateFromOverview() {
+ for (let i = 0; i < this._workspacesViews.length; i++)
+ this._workspacesViews[i].animateFromOverview();
this._leavingOverview = true;
this._updateSwipeTracker();
@@ -614,7 +577,7 @@ class WorkspacesDisplay extends St.Widget {
Main.layoutManager.getWorkAreaForMonitor(primaryIndex);
this._getPrimaryView().ease({
x, y, width, height,
- duration: fadeOnPrimary ? 0 : ANIMATION_TIME,
+ duration: ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
});
}
@@ -737,7 +700,7 @@ class WorkspacesDisplay extends St.Widget {
_syncWorkspacesActualGeometry() {
const primaryView = this._getPrimaryView();
- if (!primaryView || this._inWindowFade)
+ if (!primaryView)
return;
primaryView.ease({
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]