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._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,