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:
parent
e937fd07e5
commit
fe8e62c6a8
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user