[gnome-shell/gbsneto/blur: 2/2] screenShield: Animate shield using translation_y



commit faa0e0adf17baf706f76bf769798ce08c1cc3131
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Thu Nov 28 12:29:12 2019 -0300

    screenShield: Animate shield using translation_y
    
    Instead of using the 'y', which queues a full relayout and
    thus forces effects to be reapplied, use the 'translation_y'
    property, that doesn't force relayouts and allows the blur
    effect to actually use the cached framebuffers a lot more.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/864

 js/ui/screenShield.js | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
---
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index 8ca76c52a9..631b7f5288 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -786,7 +786,7 @@ var ScreenShield = class {
         let newY = currentY - origY;
         newY = clamp(newY, -global.stage.height, 0);
 
-        this._lockScreenGroup.y = newY;
+        this._lockScreenGroup.translation_y = newY;
 
         return true;
     }
@@ -794,7 +794,7 @@ var ScreenShield = class {
     _onDragEnd(_action, _actor, _eventX, _eventY, _modifiers) {
         if (this._lockScreenState != MessageTray.State.HIDING)
             return;
-        if (this._lockScreenGroup.y < -(ARROW_DRAG_THRESHOLD * global.stage.height)) {
+        if (this._lockScreenGroup.translation_y < -(ARROW_DRAG_THRESHOLD * global.stage.height)) {
             // Complete motion automatically
             let [velocity_, velocityX_, velocityY] = this._dragAction.get_velocity(0);
             this._liftShield(true, -velocityY);
@@ -802,10 +802,10 @@ var ScreenShield = class {
             // restore the lock screen to its original place
             // try to use the same speed as the normal animation
             let h = global.stage.height;
-            let duration = MANUAL_FADE_TIME * -this._lockScreenGroup.y / h;
+            let duration = MANUAL_FADE_TIME * -this._lockScreenGroup.translation_y / h;
             this._lockScreenGroup.remove_all_transitions();
             this._lockScreenGroup.ease({
-                y: 0,
+                translation_y: 0,
                 duration,
                 mode: Clutter.AnimationMode.EASE_IN_QUAD,
                 onComplete: () => {
@@ -954,14 +954,14 @@ var ScreenShield = class {
             // use the same speed regardless of original position
             // if velocity is specified, it's in pixels per milliseconds
             let h = global.stage.height;
-            let delta = h + this._lockScreenGroup.y;
+            let delta = h + this._lockScreenGroup.translation_y;
             let minVelocity = global.stage.height / CURTAIN_SLIDE_TIME;
 
             velocity = Math.max(minVelocity, velocity);
             let duration = delta / velocity;
 
             this._lockScreenGroup.ease({
-                y: -h,
+                translation_y: -h,
                 duration,
                 mode: Clutter.AnimationMode.EASE_IN_QUAD,
                 onComplete: () => this._hideLockScreenComplete(),
@@ -1023,10 +1023,10 @@ var ScreenShield = class {
         let fadeToBlack = params.fadeToBlack;
 
         if (params.animateLockScreen) {
-            this._lockScreenGroup.y = -global.screen_height;
+            this._lockScreenGroup.translation_y = -global.screen_height;
             this._lockScreenGroup.remove_all_transitions();
             this._lockScreenGroup.ease({
-                y: 0,
+                translation_y: 0,
                 duration: MANUAL_FADE_TIME,
                 mode: Clutter.AnimationMode.EASE_OUT_QUAD,
                 onComplete: () => {


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