[gnome-shell] overview: Reorganize animateTo/FromOverview()



commit 0a8aeebd301f3ffe561651511059a1e17c49d0f6
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Fri Jan 1 13:39:07 2021 -0300

    overview: Reorganize animateTo/FromOverview()
    
    Instead of directly accessing ViewSelector and calling these methods
    there, cascade the calls to OverviewActor, ControlsManager, and finally
    ViewSelector. Also move the opacity transition to OverviewActor.
    
    This commit has no functional change.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

 js/ui/overview.js         | 48 ++++++++++++++++++++++++++++++-----------------
 js/ui/overviewControls.js |  8 ++++++++
 2 files changed, 39 insertions(+), 17 deletions(-)
---
diff --git a/js/ui/overview.js b/js/ui/overview.js
index e298680221..aabc4ec076 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -97,6 +97,35 @@ class OverviewActor extends St.BoxLayout {
         this.add_child(this._controls);
     }
 
+    animateToOverview(callback) {
+        this._controls.animateToOverview();
+
+        this.opacity = 0;
+        this.ease({
+            opacity: 255,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
+            duration: ANIMATION_TIME,
+            onStopped: () => {
+                if (callback)
+                    callback();
+            },
+        });
+    }
+
+    animateFromOverview(callback) {
+        this._controls.animateFromOverview();
+
+        this.ease({
+            opacity: 0,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
+            duration: ANIMATION_TIME,
+            onStopped: () => {
+                if (callback)
+                    callback();
+            },
+        });
+    }
+
     get dash() {
         return this._controls.dash;
     }
@@ -492,15 +521,8 @@ var Overview = class {
         this._activationTime = GLib.get_monotonic_time() / GLib.USEC_PER_SEC;
 
         Meta.disable_unredirect_for_display(global.display);
-        this.viewSelector.animateToOverview();
 
-        this._overview.opacity = 0;
-        this._overview.ease({
-            opacity: 255,
-            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-            duration: ANIMATION_TIME,
-            onComplete: () => this._showDone(),
-        });
+        this._overview.animateToOverview(() => this._showDone());
 
         Main.layoutManager.overviewGroup.set_child_above_sibling(
             this._coverPane, null);
@@ -555,15 +577,7 @@ var Overview = class {
         this._animationInProgress = true;
         this._visibleTarget = false;
 
-        this.viewSelector.animateFromOverview();
-
-        // Make other elements fade out.
-        this._overview.ease({
-            opacity: 0,
-            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-            duration: ANIMATION_TIME,
-            onComplete: () => this._hideDone(),
-        });
+        this._overview.animateFromOverview(() => this._hideDone());
 
         Main.layoutManager.overviewGroup.set_child_above_sibling(
             this._coverPane, null);
diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js
index 9059d34e9b..e7c62d3c97 100644
--- a/js/ui/overviewControls.js
+++ b/js/ui/overviewControls.js
@@ -172,6 +172,14 @@ class ControlsManager extends St.Widget {
         this._workspaceAdjustment.value = activeIndex;
     }
 
+    animateToOverview() {
+        this.viewSelector.animateToOverview();
+    }
+
+    animateFromOverview() {
+        this.viewSelector.animateFromOverview();
+    }
+
     get searchEntry() {
         return this._searchEntry;
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]