[gnome-shell] screenShield: defer deactivation until all messages are shown
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] screenShield: defer deactivation until all messages are shown
- Date: Thu, 18 Jul 2013 13:25:10 +0000 (UTC)
commit ded99b9a09ccba059073ba6ec82ed3e58c6d810f
Author: Ray Strode <rstrode redhat com>
Date: Thu Jul 18 08:58:58 2013 -0400
screenShield: defer deactivation until all messages are shown
Right now when a user types their password to unlock their session
we end up getting an unlock signal from GDM right away. We then
proceed to deactivate the screensaver before the user has a chance
to read his messages.
This commit makes sure we clear out the message queue before processing
the deactivation request.
https://bugzilla.gnome.org/show_bug.cgi?id=704347
js/ui/screenShield.js | 6 ++++++
js/ui/unlockDialog.js | 14 ++++++++++++++
2 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js
index d7bf461..8271aa0 100644
--- a/js/ui/screenShield.js
+++ b/js/ui/screenShield.js
@@ -1121,6 +1121,12 @@ const ScreenShield = new Lang.Class({
},
deactivate: function(animate) {
+ this._dialog.finish(Lang.bind(this, function() {
+ this._finishDeactivate(animate);
+ }));
+ },
+
+ _finishDeactivate: function(animate) {
this._hideLockScreen(animate, 0);
if (this._hasLockScreen)
diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
index e2646ea..75d1138 100644
--- a/js/ui/unlockDialog.js
+++ b/js/ui/unlockDialog.js
@@ -281,4 +281,18 @@ const UnlockDialog = new Lang.Class({
addCharacter: function(unichar) {
this._promptEntry.clutter_text.insert_unichar(unichar);
},
+
+ finish: function(onComplete) {
+ if (!this._userVerifier.hasPendingMessages) {
+ onComplete();
+ return;
+ }
+
+ let signalId = this._userVerifier.connect('no-more-messages',
+ Lang.bind(this, function() {
+ this._userVerifier.disconnect(signalId);
+ onComplete();
+ }));
+
+ }
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]