mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
ScreenShield: handle Escape on the stage, not on the lock screen
This allows to press esc to unlock even if the focus is not on the lock screen (for example after dismissing the auth failure notification). https://bugzilla.gnome.org/show_bug.cgi?id=681143
This commit is contained in:
parent
29958df7e7
commit
82f7431a28
1 changed files with 12 additions and 4 deletions
|
|
@ -274,8 +274,6 @@ const ScreenShield = new Lang.Class({
|
|||
can_focus: true,
|
||||
layout_manager: new Clutter.BinLayout()
|
||||
});
|
||||
this._lockScreenGroup.connect('key-release-event',
|
||||
Lang.bind(this, this._onLockScreenKeyRelease));
|
||||
|
||||
this._background = Meta.BackgroundActor.new_for_screen(global.screen);
|
||||
this._background.add_effect(new Clutter.BlurEffect());
|
||||
|
|
@ -330,7 +328,10 @@ const ScreenShield = new Lang.Class({
|
|||
fadeFactor: 1 });
|
||||
},
|
||||
|
||||
_onLockScreenKeyRelease: function(actor, event) {
|
||||
_onStageKeyRelease: function(actor, event) {
|
||||
if (!this._isLocked)
|
||||
return false;
|
||||
|
||||
if (event.get_key_symbol() == Clutter.KEY_Escape) {
|
||||
this._showUnlockDialog(true);
|
||||
return true;
|
||||
|
|
@ -495,7 +496,9 @@ const ScreenShield = new Lang.Class({
|
|||
this.emit('lock-screen-shown');
|
||||
}
|
||||
|
||||
this._lockScreenGroup.grab_key_focus();
|
||||
if (!this._stageKeyHandler)
|
||||
this._stageKeyHandler = global.stage.connect('key-release-event',
|
||||
Lang.bind(this, this._onStageKeyRelease));
|
||||
},
|
||||
|
||||
// Some of the actors in the lock screen are heavy in
|
||||
|
|
@ -544,6 +547,11 @@ const ScreenShield = new Lang.Class({
|
|||
if (this._hasLockScreen)
|
||||
this._clearLockScreen();
|
||||
|
||||
if (this._stageKeyHandler) {
|
||||
global.stage.disconnect(this._stageKeyHandler);
|
||||
this._stageKeyHandler = 0;
|
||||
}
|
||||
|
||||
if (this._keepDialog) {
|
||||
// The dialog must be kept alive,
|
||||
// so immediately go back to it
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue