diff --git a/js/gdm/util.js b/js/gdm/util.js index 261e1e433..3d6d69c10 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js @@ -134,7 +134,6 @@ var ShellUserVerifier = new Lang.Class({ this._settings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA }); this._settings.connect('changed', this._updateDefaultService.bind(this)); - this._updateDefaultService(); this._fprintManager = Fprint.FprintManager(); this._smartcardManager = SmartcardManager.getSmartcardManager(); @@ -146,6 +145,8 @@ var ShellUserVerifier = new Lang.Class({ this.smartcardDetected = false; this._checkForSmartcard(); + this._updateDefaultService(); + this._smartcardInsertedId = this._smartcardManager.connect('smartcard-inserted', this._checkForSmartcard.bind(this)); this._smartcardRemovedId = this._smartcardManager.connect('smartcard-removed', @@ -412,7 +413,9 @@ var ShellUserVerifier = new Lang.Class({ }, _updateDefaultService() { - if (this._settings.get_boolean(PASSWORD_AUTHENTICATION_KEY)) + if (this._smartcardManager.loggedInWithToken()) + this._defaultService = SMARTCARD_SERVICE_NAME; + else if (this._settings.get_boolean(PASSWORD_AUTHENTICATION_KEY)) this._defaultService = PASSWORD_SERVICE_NAME; else if (this._settings.get_boolean(SMARTCARD_AUTHENTICATION_KEY)) this._defaultService = SMARTCARD_SERVICE_NAME;