[gnome-shell] iconGrid: Remove unused spring animation code



commit dff5bef45cd20e71f61252e09d5a8a29452c6d1a
Author: Sebastian Keller <skeller gnome org>
Date:   Sat Jan 1 19:13:03 2022 +0100

    iconGrid: Remove unused spring animation code
    
    The spring animation has not been used since 40.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2081>

 js/ui/iconGrid.js | 194 ------------------------------------------------------
 1 file changed, 194 deletions(-)
---
diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js
index 65b130ce74..0bba7e9aec 100644
--- a/js/ui/iconGrid.js
+++ b/js/ui/iconGrid.js
@@ -8,19 +8,8 @@ const Main = imports.ui.main;
 
 var ICON_SIZE = 96;
 
-var ANIMATION_TIME_IN = 350;
-var ANIMATION_TIME_OUT = 1 / 2 * ANIMATION_TIME_IN;
-var ANIMATION_MAX_DELAY_FOR_ITEM = 2 / 3 * ANIMATION_TIME_IN;
-var ANIMATION_MAX_DELAY_OUT_FOR_ITEM = 2 / 3 * ANIMATION_TIME_OUT;
-var ANIMATION_FADE_IN_TIME_FOR_ITEM = 1 / 4 * ANIMATION_TIME_IN;
-
 var PAGE_SWITCH_TIME = 300;
 
-var AnimationDirection = {
-    IN: 0,
-    OUT: 1,
-};
-
 var IconSize = {
     LARGE: 96,
     MEDIUM: 64,
@@ -365,9 +354,6 @@ var IconGridLayout = GObject.registerClass({
         this._containerDestroyedId = 0;
         this._updateIconSizesLaterId = 0;
 
-        this._resolveOnIdleId = 0;
-        this._iconSizeUpdateResolveCbs = [];
-
         this._childrenMaxSize = -1;
     }
 
@@ -696,28 +682,11 @@ var IconGridLayout = GObject.registerClass({
         return isRtl ? rowAlign * -1 : rowAlign;
     }
 
-    _runPostAllocation() {
-        if (this._iconSizeUpdateResolveCbs.length > 0 &&
-            this._resolveOnIdleId === 0) {
-            this._resolveOnIdleId = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
-                this._iconSizeUpdateResolveCbs.forEach(cb => cb());
-                this._iconSizeUpdateResolveCbs = [];
-                this._resolveOnIdleId = 0;
-                return GLib.SOURCE_REMOVE;
-            });
-        }
-    }
-
     _onDestroy() {
         if (this._updateIconSizesLaterId >= 0) {
             Meta.later_remove(this._updateIconSizesLaterId);
             this._updateIconSizesLaterId = 0;
         }
-
-        if (this._resolveOnIdleId > 0) {
-            GLib.source_remove(this._resolveOnIdleId);
-            delete this._resolveOnIdleId;
-        }
     }
 
     vfunc_set_container(container) {
@@ -834,8 +803,6 @@ var IconGridLayout = GObject.registerClass({
 
         this._pageSizeChanged = false;
         this._shouldEaseItems = false;
-
-        this._runPostAllocation();
     }
 
     /**
@@ -1158,7 +1125,6 @@ var IconGridLayout = GObject.registerClass({
 var IconGrid = GObject.registerClass({
     Signals: {
         'pages-changed': {},
-        'animation-done': {},
     },
 }, class IconGrid extends St.Viewport {
     _init(layoutParams = {}) {
@@ -1188,46 +1154,16 @@ var IconGrid = GObject.registerClass({
         this._gridModes = defaultGridModes;
         this._currentPage = 0;
         this._currentMode = -1;
-        this._clonesAnimating = [];
 
         this.connect('actor-added', this._childAdded.bind(this));
         this.connect('actor-removed', this._childRemoved.bind(this));
         this.connect('destroy', () => layoutManager.disconnect(pagesChangedId));
     }
 
-    _getChildrenToAnimate() {
-        const layoutManager = this.layout_manager;
-        const children = layoutManager.getItemsAtPage(this._currentPage);
-
-        return children.filter(c => c.visible);
-    }
-
-    _resetAnimationActors() {
-        this._clonesAnimating.forEach(clone => {
-            clone.source.reactive = true;
-            clone.source.opacity = 255;
-            clone.destroy();
-        });
-        this._clonesAnimating = [];
-    }
-
-    _animationDone() {
-        this._resetAnimationActors();
-        this.emit('animation-done');
-    }
-
     _childAdded(grid, child) {
         child._iconGridKeyFocusInId = child.connect('key-focus-in', () => {
             this._ensureItemIsVisible(child);
         });
-
-        child._paintVisible = child.opacity > 0;
-        child._opacityChangedId = child.connect('notify::opacity', () => {
-            let paintVisible = child._paintVisible;
-            child._paintVisible = child.opacity > 0;
-            if (paintVisible !== child._paintVisible)
-                this.queue_relayout();
-        });
     }
 
     _ensureItemIsVisible(item) {
@@ -1277,17 +1213,6 @@ var IconGrid = GObject.registerClass({
     _childRemoved(grid, child) {
         child.disconnect(child._iconGridKeyFocusInId);
         delete child._iconGridKeyFocusInId;
-
-        child.disconnect(child._opacityChangedId);
-        delete child._opacityChangedId;
-        delete child._paintVisible;
-    }
-
-    vfunc_unmap() {
-        // Cancel animations when hiding the overview, to avoid icons
-        // swarming into the void ...
-        this._resetAnimationActors();
-        super.vfunc_unmap();
     }
 
     vfunc_style_changed() {
@@ -1478,125 +1403,6 @@ var IconGrid = GObject.registerClass({
         this.layout_manager.adaptToSize(width, height);
     }
 
-    async animateSpring(animationDirection, sourceActor) {
-        this._resetAnimationActors();
-
-        let actors = this._getChildrenToAnimate();
-        if (actors.length === 0) {
-            this._animationDone();
-            return;
-        }
-
-        await this.layout_manager.ensureIconSizeUpdated();
-
-        let [sourceX, sourceY] = sourceActor.get_transformed_position();
-        let [sourceWidth, sourceHeight] = sourceActor.get_size();
-        // Get the center
-        let [sourceCenterX, sourceCenterY] = [sourceX + sourceWidth / 2, sourceY + sourceHeight / 2];
-        // Design decision, 1/2 of the source actor size.
-        let [sourceScaledWidth, sourceScaledHeight] = [sourceWidth / 2, sourceHeight / 2];
-
-        actors.forEach(actor => {
-            let [actorX, actorY] = actor._transformedPosition = actor.get_transformed_position();
-            let [x, y] = [actorX - sourceX, actorY - sourceY];
-            actor._distance = Math.sqrt(x * x + y * y);
-        });
-        let maxDist = actors.reduce((prev, cur) => {
-            return Math.max(prev, cur._distance);
-        }, 0);
-        let minDist = actors.reduce((prev, cur) => {
-            return Math.min(prev, cur._distance);
-        }, Infinity);
-        let normalization = maxDist - minDist;
-
-        actors.forEach(actor => {
-            let clone = new Clutter.Clone({ source: actor });
-            this._clonesAnimating.push(clone);
-            Main.uiGroup.add_actor(clone);
-        });
-
-        /*
-         * ^
-         * | These need to be separate loops because Main.uiGroup.add_actor
-         * | is excessively slow if done inside the below loop and we want the
-         * | below loop to complete within one frame interval (#2065, !1002).
-         * v
-         */
-
-        this._clonesAnimating.forEach(actorClone => {
-            const actor = actorClone.source;
-            actor.opacity = 0;
-            actor.reactive = false;
-
-            let [width, height] = actor.get_size();
-            actorClone.set_size(width, height);
-            let scaleX = sourceScaledWidth / width;
-            let scaleY = sourceScaledHeight / height;
-            let [adjustedSourcePositionX, adjustedSourcePositionY] = [sourceCenterX - sourceScaledWidth / 2, 
sourceCenterY - sourceScaledHeight / 2];
-
-            let movementParams, fadeParams;
-            if (animationDirection === AnimationDirection.IN) {
-                const isLastItem = actor._distance === minDist;
-
-                actorClone.opacity = 0;
-                actorClone.set_scale(scaleX, scaleY);
-                actorClone.set_translation(
-                    adjustedSourcePositionX, adjustedSourcePositionY, 0);
-
-                let delay = (1 - (actor._distance - minDist) / normalization) * ANIMATION_MAX_DELAY_FOR_ITEM;
-                let [finalX, finalY]  = actor._transformedPosition;
-                movementParams = {
-                    translation_x: finalX,
-                    translation_y: finalY,
-                    scale_x: 1,
-                    scale_y: 1,
-                    duration: ANIMATION_TIME_IN,
-                    mode: Clutter.AnimationMode.EASE_IN_OUT_QUAD,
-                    delay,
-                };
-
-                if (isLastItem)
-                    movementParams.onComplete = this._animationDone.bind(this);
-
-                fadeParams = {
-                    opacity: 255,
-                    duration: ANIMATION_FADE_IN_TIME_FOR_ITEM,
-                    mode: Clutter.AnimationMode.EASE_IN_OUT_QUAD,
-                    delay,
-                };
-            } else {
-                const isLastItem = actor._distance === maxDist;
-
-                let [startX, startY]  = actor._transformedPosition;
-                actorClone.set_translation(startX, startY, 0);
-
-                let delay = (actor._distance - minDist) / normalization * ANIMATION_MAX_DELAY_OUT_FOR_ITEM;
-                movementParams = {
-                    translation_x: adjustedSourcePositionX,
-                    translation_y: adjustedSourcePositionY,
-                    scale_x: scaleX,
-                    scale_y: scaleY,
-                    duration: ANIMATION_TIME_OUT,
-                    mode: Clutter.AnimationMode.EASE_IN_OUT_QUAD,
-                    delay,
-                };
-
-                if (isLastItem)
-                    movementParams.onComplete = this._animationDone.bind(this);
-
-                fadeParams = {
-                    opacity: 0,
-                    duration: ANIMATION_FADE_IN_TIME_FOR_ITEM,
-                    mode: Clutter.AnimationMode.EASE_IN_OUT_QUAD,
-                    delay: ANIMATION_TIME_OUT + delay - ANIMATION_FADE_IN_TIME_FOR_ITEM,
-                };
-            }
-
-            actorClone.ease(movementParams);
-            actorClone.ease(fadeParams);
-        });
-    }
-
     setGridModes(modes) {
         this._gridModes = modes ? modes : defaultGridModes;
         this.queue_relayout();


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