[gnome-shell] lightbox: Use common ease parameters and avoid similar codepaths



commit c101196f5b1e550fc1ba2ea80e345f4a0e53296a
Author: Marco Trevisan (Treviño) <mail 3v1n0 net>
Date:   Wed Jul 31 14:10:31 2019 +0200

    lightbox: Use common ease parameters and avoid similar codepaths
    
    Easing calls on show/hide functions have some parameters in common whether the
    radial effect is enabled or not.
    
    So instead of doing repeated calls with similar parameters, initialize common
    values in params objects.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700

 js/ui/lightbox.js | 50 ++++++++++++++++++--------------------------------
 1 file changed, 18 insertions(+), 32 deletions(-)
---
diff --git a/js/ui/lightbox.js b/js/ui/lightbox.js
index fbbc011681..563bd637a2 100644
--- a/js/ui/lightbox.js
+++ b/js/ui/lightbox.js
@@ -172,10 +172,13 @@ var Lightbox = class Lightbox {
     }
 
     show(fadeInTime) {
-        fadeInTime = fadeInTime || 0;
-
         this.actor.remove_all_transitions();
 
+        let easeProps = {
+            duration: fadeInTime || 0,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD
+        };
+
         let onComplete = () => {
             this.shown = true;
             this.emit('shown');
@@ -183,55 +186,38 @@ var Lightbox = class Lightbox {
 
         if (this._radialEffect) {
             this.actor.ease_property(
-                '@effects.radial.brightness', VIGNETTE_BRIGHTNESS, {
-                    duration: fadeInTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD
-                });
+                '@effects.radial.brightness', VIGNETTE_BRIGHTNESS, easeProps);
             this.actor.ease_property(
-                '@effects.radial.sharpness', VIGNETTE_SHARPNESS, {
-                    duration: fadeInTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-                    onComplete
-                });
+                '@effects.radial.sharpness', VIGNETTE_SHARPNESS,
+                Object.assign({ onComplete }, easeProps));
         } else {
-            this.actor.ease({
+            this.actor.ease(Object.assign(easeProps, {
                 opacity: 255 * this._fadeFactor,
-                duration: fadeInTime,
-                mode: Clutter.AnimationMode.EASE_OUT_QUAD,
                 onComplete
-            });
+            }));
         }
 
         this.actor.show();
     }
 
     hide(fadeOutTime) {
-        fadeOutTime = fadeOutTime || 0;
-
         this.shown = false;
         this.actor.remove_all_transitions();
 
+        let easeProps = {
+            duration: fadeOutTime || 0,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD
+        };
+
         let onComplete = () => this.actor.hide();
 
         if (this._radialEffect) {
             this.actor.ease_property(
-                '@effects.radial.brightness', 1.0, {
-                    duration: fadeOutTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD
-                });
+                '@effects.radial.brightness', 1.0, easeProps);
             this.actor.ease_property(
-                '@effects.radial.sharpness', 0.0, {
-                    duration: fadeOutTime,
-                    mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-                    onComplete
-                });
+                '@effects.radial.sharpness', 0.0, Object.assign({ onComplete }, easeProps));
         } else {
-            this.actor.ease({
-                opacity: 0,
-                duration: fadeOutTime,
-                mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-                onComplete
-            });
+            this.actor.ease(Object.assign(easeProps, { opacity: 0, onComplete }));
         }
     }
 


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