[gnome-shell] messageTray: keep the desktop clone at integral positions tweening it



commit fe8e62c6a8cccd0719a406f2f0ff3bb496cb3d00
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Wed Aug 15 19:21:33 2012 -0400

    messageTray: keep the desktop clone at integral positions tweening it
    
    Drawing the desktop at non-integral positions is slower because it
    turns off the obscured-area clipping logic, so avoid that.

 js/ui/messageTray.js |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 8d14d1f..f774716 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -1932,12 +1932,14 @@ const MessageTray = new Lang.Class({
 
         this._lightbox.show();
 
+        this._desktopClone._progress = 0;
         Tweener.addTween(this._desktopClone,
-                         { y: this._desktopClone.y - this.actor.height,
+                         { _progress: this.actor.height,
                            time: ANIMATION_TIME,
                            transition: 'easeOutQuad',
                            onUpdate: Lang.bind(this, function() {
-                               let progress = -1 * this._desktopClone.y; // y is negative
+                               let progress = Math.round(this._desktopClone._progress);
+                               this._desktopClone.y = - progress;
                                this._desktopClone.set_clip(geometry.x,
                                                            geometry.y + progress,
                                                            geometry.width,
@@ -1966,8 +1968,9 @@ const MessageTray = new Lang.Class({
         }
 
         let geometry = this._desktopClone.clip;
+        this._desktopClone._progress = 0;
         Tweener.addTween(this._desktopClone,
-                         { y: this._desktopClone.y + this.actor.height,
+                         { _progress: this.actor.height,
                            time: ANIMATION_TIME,
                            transition: 'easeOutQuad',
                            onComplete: Lang.bind(this, function() {
@@ -1975,7 +1978,8 @@ const MessageTray = new Lang.Class({
                                this._desktopClone = null;
                            }),
                            onUpdate: Lang.bind(this, function() {
-                               let progress = this.actor.height + this._desktopClone.y; // y is negative
+                               let progress = Math.round(this._desktopClone._progress);
+                               this._desktopClone.y = progress - this.actor.height;
                                this._desktopClone.set_clip(geometry.x,
                                                            geometry.y - progress,
                                                            geometry.width,



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