ScreenShield: bump the lock screen slightly when pressing a key

When pressing a key different from escape (one thus that has no
effect), bump the screen up, to indicate that it eats keyboard
input and it must be lifted up.

https://bugzilla.gnome.org/show_bug.cgi?id=681143
This commit is contained in:
Giovanni Campagna 2012-08-03 23:31:02 +02:00
parent 80fde70995
commit d0a94768a6

View File

@ -23,6 +23,11 @@ const CURTAIN_SLIDE_TIME = 0.8;
// the slide up automatically
const ARROW_DRAG_TRESHOLD = 0.1;
// The distance in px that the lock screen will move to when pressing
// a key that has no effect in the lock screen (bumping it)
const BUMP_SIZE = 25;
const BUMP_TIME = 0.3;
const SUMMARY_ICON_SIZE = 48;
// Lightbox fading times
@ -348,7 +353,12 @@ const ScreenShield = new Lang.Class({
return true;
}
return false;
// If the dialog is created, but hasn't received focus yet,
// the lock screen could be still focused, so bumping would
// make the curtain fall again.
if (!this._dialog)
this._bumpLockScreen();
return true;
},
_drawArrow: function() {
@ -433,6 +443,21 @@ const ScreenShield = new Lang.Class({
this._hideLockScreen(false);
},
_bumpLockScreen: function() {
Tweener.removeTweens(this._lockScreenGroup);
Tweener.addTween(this._lockScreenGroup,
{ y: -BUMP_SIZE,
time: BUMP_TIME / 2,
transition: 'easeOutQuad',
onComplete: function() {
Tweener.addTween(this,
{ y: 0,
time: BUMP_TIME / 2,
transition: 'easeInQuad' });
}
});
},
_hideLockScreen: function(animate) {
if (animate) {
// Tween the lock screen out of screen