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.
This commit is contained in:
Owen W. Taylor 2012-08-15 19:21:33 -04:00 committed by Jasper St. Pierre
parent e937fd07e5
commit fe8e62c6a8

View File

@ -1932,12 +1932,14 @@ const MessageTray = new Lang.Class({
this._lightbox.show(); this._lightbox.show();
this._desktopClone._progress = 0;
Tweener.addTween(this._desktopClone, Tweener.addTween(this._desktopClone,
{ y: this._desktopClone.y - this.actor.height, { _progress: this.actor.height,
time: ANIMATION_TIME, time: ANIMATION_TIME,
transition: 'easeOutQuad', transition: 'easeOutQuad',
onUpdate: Lang.bind(this, function() { 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, this._desktopClone.set_clip(geometry.x,
geometry.y + progress, geometry.y + progress,
geometry.width, geometry.width,
@ -1966,8 +1968,9 @@ const MessageTray = new Lang.Class({
} }
let geometry = this._desktopClone.clip; let geometry = this._desktopClone.clip;
this._desktopClone._progress = 0;
Tweener.addTween(this._desktopClone, Tweener.addTween(this._desktopClone,
{ y: this._desktopClone.y + this.actor.height, { _progress: this.actor.height,
time: ANIMATION_TIME, time: ANIMATION_TIME,
transition: 'easeOutQuad', transition: 'easeOutQuad',
onComplete: Lang.bind(this, function() { onComplete: Lang.bind(this, function() {
@ -1975,7 +1978,8 @@ const MessageTray = new Lang.Class({
this._desktopClone = null; this._desktopClone = null;
}), }),
onUpdate: Lang.bind(this, function() { 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, this._desktopClone.set_clip(geometry.x,
geometry.y - progress, geometry.y - progress,
geometry.width, geometry.width,