diff options
author | verdre <gitlab@v0yd.nl> | 2018-04-17 15:04:04 +0200 |
---|---|---|
committer | verdre <gitlab@v0yd.nl> | 2018-04-19 09:08:45 +0200 |
commit | 5cc6fef6892f42f0413f1411213687baa2e1e2f8 (patch) | |
tree | 18a4a036b3c135681455dd73b624fad330a97628 | |
parent | 522a5fe480c45fb35dbe7fe7e2fc48560ad608b5 (diff) | |
download | gnome-shell-5cc6fef6892f42f0413f1411213687baa2e1e2f8.tar.gz |
loginDialog: Restrict grabbing of focus while timed login is running
Make sure the focus isn't grabbed right after user interaction starts a
new timed login. Only grab it after the idle timeout is done and on the
first run instead.
-rw-r--r-- | js/gdm/loginDialog.js | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 017947689..eb8465c59 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -990,11 +990,6 @@ var LoginDialog = new Lang.Class({ return hold; }, - _showTimedLoginAnimation() { - this._timedLoginItem.actor.grab_key_focus(); - return this._timedLoginItem.showTimedLoginIndicator(this._timedLoginAnimationTime); - }, - _blockTimedLoginUntilIdle() { // This blocks timed login from starting until a few // seconds after the user stops interacting with the @@ -1019,10 +1014,13 @@ var LoginDialog = new Lang.Class({ }, _startTimedLogin(userName, delay) { + let firstRun = true; + // Cancel execution of old batch if (this._timedLoginBatch) { this._timedLoginBatch.cancel(); this._timedLoginBatch = null; + firstRun = false; } // Reset previous idle-timeout @@ -1054,10 +1052,13 @@ var LoginDialog = new Lang.Class({ this._blockTimedLoginUntilIdle, () => { - this._userList.scrollToItem(this._timedLoginItem); + if (this._timedLoginDelay > _TIMED_LOGIN_IDLE_THRESHOLD || firstRun) { + this._userList.scrollToItem(this._timedLoginItem); + this._timedLoginItem.actor.grab_key_focus(); + } }, - this._showTimedLoginAnimation, + () => this._timedLoginItem.showTimedLoginIndicator(this._timedLoginAnimationTime), () => { this._timedLoginBatch = null; |