ScreenShield: animate going from the unlock dialog to the lock screen

If the user presses esc in the dialog, tween the lock screen from
the top instead of showing it immediately.

https://bugzilla.gnome.org/show_bug.cgi?id=681143
This commit is contained in:
Giovanni Campagna 2012-08-14 01:43:59 +02:00
parent b1451523ca
commit 107f5de58e

View File

@ -644,14 +644,14 @@ const ScreenShield = new Lang.Class({
this._dialog.destroy();
this._dialog = null;
this._resetLockScreen(false);
this._resetLockScreen(true, false);
},
_onUnlockSucceded: function() {
this._tweenUnlocked();
},
_resetLockScreen: function(animate) {
_resetLockScreen: function(animateLockScreen, animateLockDialog) {
this._ensureLockScreen();
this._lockDialogGroup.scale_x = 1;
this._lockDialogGroup.scale_y = 1;
@ -659,7 +659,7 @@ const ScreenShield = new Lang.Class({
this._lockScreenGroup.show();
this._lockScreenState = MessageTray.State.SHOWING;
if (animate) {
if (animateLockScreen) {
this._lockScreenGroup.y = -global.screen_height;
Tweener.removeTweens(this._lockScreenGroup);
Tweener.addTween(this._lockScreenGroup,
@ -671,7 +671,12 @@ const ScreenShield = new Lang.Class({
},
onCompleteScope: this
});
} else {
this._lockScreenGroup.fixed_position_set = false;
this._lockScreenShown();
}
if (animateLockDialog) {
this._lockDialogGroup.opacity = 0;
Tweener.removeTweens(this._lockDialogGroup);
Tweener.addTween(this._lockDialogGroup,
@ -680,7 +685,6 @@ const ScreenShield = new Lang.Class({
transition: 'easeOutQuad' });
} else {
this._lockDialogGroup.opacity = 255;
this._lockScreenShown();
}
this._lockScreenGroup.grab_key_focus();
@ -812,7 +816,7 @@ const ScreenShield = new Lang.Class({
Main.sessionMode.pushMode('unlock-dialog');
}
this._resetLockScreen(animate);
this._resetLockScreen(animate, animate);
this._isActive = true;
this.emit('lock-status-changed');