[gnome-shell/f20] Pull in user-switch fix from gnome bug #710456

Ray Strode rstrode at fedoraproject.org
Tue Nov 26 03:49:35 UTC 2013


commit a223eea8b23be42ab067928349c2462010fddb03
Author: Ray Strode <rstrode at redhat.com>
Date:   Mon Nov 25 22:49:08 2013 -0500

    Pull in user-switch fix from gnome bug #710456
    
    Resolves: #1034031

 ...propagate-gdm-reset-signal-after-user-swi.patch |  106 ++++++++++++++++++++
 gnome-shell.spec                                   |    8 ++-
 2 files changed, 113 insertions(+), 1 deletions(-)
---
diff --git a/0001-authPrompt-propagate-gdm-reset-signal-after-user-swi.patch b/0001-authPrompt-propagate-gdm-reset-signal-after-user-swi.patch
new file mode 100644
index 0000000..c4268ab
--- /dev/null
+++ b/0001-authPrompt-propagate-gdm-reset-signal-after-user-swi.patch
@@ -0,0 +1,106 @@
+From b2f547e93452cb2d406263cd9bb8743760c28683 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode at redhat.com>
+Date: Mon, 25 Nov 2013 22:30:53 -0500
+Subject: [PATCH] authPrompt: propagate gdm "reset" signal after user switching
+
+After a user types in their password at the login screen, one
+of two things can happen
+
+1) a new session is started
+2) an existing session is switched to
+
+In the latter case, GDM sends a reset signal to the login screen,
+so it knows to go back to the user list and wait to be summoned
+again.
+
+Unfortunately, all reset signals are ignored after verification
+success.  The reason is because the reset handler was copied from
+the unlock dialog as part of a deduplication effort in commit
+7e7295f259febf34c89659a9bcb05f9924fa1976 and the unlock dialog
+handler at the time also emitted a "failed" signal on reset
+(which wouldn't make sense to emit after success).
+
+These days "failed" is handled in a different way.
+
+This commit changes the code to let reset signals through after
+successful verification.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=710456
+---
+ js/gdm/authPrompt.js | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
+index 1880e36..996b363 100644
+--- a/js/gdm/authPrompt.js
++++ b/js/gdm/authPrompt.js
+@@ -236,64 +236,62 @@ const AuthPrompt = new Lang.Class({
+         //                     2) Don't reset if we've already succeeded at verification and
+         //                        the user is getting logged in.
+         if (this._userVerifier.serviceIsDefault(GdmUtil.SMARTCARD_SERVICE_NAME) &&
+             this.verificationStatus == AuthPromptStatus.VERIFYING &&
+             this.smartcardDetected)
+             return;
+ 
+         if (this.verificationStatus != AuthPromptStatus.VERIFICATION_SUCCEEDED)
+             this.reset();
+     },
+ 
+     _onShowMessage: function(userVerifier, message, type) {
+         this.setMessage(message, type);
+         this.emit('prompted');
+     },
+ 
+     _onVerificationFailed: function() {
+         this._queryingService = null;
+         this.clear();
+ 
+         this.updateSensitivity(true);
+         this.setActorInDefaultButtonWell(null);
+         this.verificationStatus = AuthPromptStatus.VERIFICATION_FAILED;
+     },
+ 
+     _onVerificationComplete: function() {
+         this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED;
+     },
+ 
+     _onReset: function() {
+-        if (this.verificationStatus != AuthPromptStatus.VERIFICATION_SUCCEEDED) {
+-            this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
+-            this.reset();
+-        }
++        this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
++        this.reset();
+     },
+ 
+     addActorToDefaultButtonWell: function(actor) {
+         this._defaultButtonWell.add_child(actor);
+     },
+ 
+     setActorInDefaultButtonWell: function(actor, animate) {
+         if (!this._defaultButtonWellActor &&
+             !actor)
+             return;
+ 
+         let oldActor = this._defaultButtonWellActor;
+ 
+         if (oldActor)
+             Tweener.removeTweens(oldActor);
+ 
+         let isSpinner;
+         if (actor == this._spinner.actor)
+             isSpinner = true;
+         else
+             isSpinner = false;
+ 
+         if (this._defaultButtonWellActor != actor && oldActor) {
+             if (!animate) {
+                 oldActor.opacity = 0;
+             } else {
+                 Tweener.addTween(oldActor,
+                                  { opacity: 0,
+                                    time: DEFAULT_BUTTON_WELL_ANIMATION_TIME,
+                                    delay: DEFAULT_BUTTON_WELL_ANIMATION_DELAY,
+-- 
+1.8.3.1
+
diff --git a/gnome-shell.spec b/gnome-shell.spec
index f6ae7c0..c826180 100644
--- a/gnome-shell.spec
+++ b/gnome-shell.spec
@@ -1,6 +1,6 @@
 Name:           gnome-shell
 Version:        3.10.2.1
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Window management and application launching for GNOME
 
 Group:          User Interface/Desktops
@@ -14,6 +14,7 @@ Source0:        http://download.gnome.org/sources/gnome-shell/3.10/%{name}-%{ver
 Patch1: gnome-shell-favourite-apps-firefox.patch
 
 Patch11: 0001-messageTray-Prevent-reentrancy-issues-in-_updateStat.patch
+Patch12: 0001-authPrompt-propagate-gdm-reset-signal-after-user-swi.patch
 
 %define clutter_version 1.13.4
 %define gnome_bluetooth_version 1:3.9.0
@@ -119,6 +120,7 @@ easy to use experience.
 %patch1 -p1 -b .firefox
 
 %patch11 -p1 -b .fix-message-tray-reentrancy
+%patch12 -p1 -b .fix-user-switch-bustification
 
 %build
 (if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; fi;
@@ -178,6 +180,10 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null
 %exclude %{_datadir}/gtk-doc
 
 %changelog
+* Mon Nov 25 2013 Ray Strode <rstrode at redhat.com> 3.10.2.1-2
+- Pull in user-switch fix from gnome bug #710456
+  Resolves: #1034031
+
 * Fri Nov 22 2013 Richard Hughes <rhughes at redhat.com> - 3.10.2.1-1
 - Update to 3.10.2.1
 


More information about the scm-commits mailing list