[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#771535: marked as done (Pre-approval for gnome-shell/3.14.2-1)



Your message dated Mon, 01 Dec 2014 18:59:26 +0000
with message-id <1417460366.2472.55.camel@adam-barratt.org.uk>
and subject line Re: Bug#771535: Pre-approval for gnome-shell/3.14.2-1
has caused the Debian Bug report #771535,
regarding Pre-approval for gnome-shell/3.14.2-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
771535: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771535
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Hi,

please approve the upload of gnome-shell to unstable for the following 
changes including an important bugfix in GDM:

gnome-shell (3.14.2-1) unstable; urgency=medium

  * gnome-shell.gsettings-override: remove shotwell which is no longer 
    part of the default installation.
  * New upstream bugfix release.
    + Summarize notifications instead of queuing up.
  * Bump (build-)dependencies on mutter.
  * 01_network_list.patch: patch from upstream git. Fix an UI bug when 
    removing network connections.
  * 02_auth_prompt.patch: patch from upstream git. Fix the prompt with  
    disable_user_list after canceling an attempt. Closes: #683338.

Attaching upstream changes between 3.14.1 and 3.14.2.

unblock gnome-shell/3.14.2-1

Thanks,
-- 
 .''`.        Josselin Mouette
: :' :
`. `'
  `-
diff --git a/NEWS b/NEWS
index 9e721a0..3aa03e6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,23 @@
+3.14.2
+======
+* Do not hard-depend on latest NetworkManager [Florian; #738485]
+* Fix check for isToday in calendar [Darcy; #738725]
+* Fix workspace changes from app picker [Yuki; #737534]
+* Misc. bug fixes [Yuki; #739497]
+
+Contributors:
+  Darcy, Florian Müllner, Yuki
+
+3.14.1.5
+========
+* Fix handing of SystemBackground [Owen; #738652]
+* Summarize queued up notifications [Devyani; #702460]
+* Plug an animation object leak [Rui; #739252]
+* Improve handling of multi-day events [Andreas; #727302]
+
+Contributors:
+  Andreas Brauchli, Devyani Kota, Rui Matos, Owen W. Taylor
+
 3.14.1
 ======
 * Fix pulse animation for scrolled app folders [Florian; #736885]
diff --git a/configure.ac b/configure.ac
index 71cf1da..790b7b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ(2.63)
-AC_INIT([gnome-shell],[3.14.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
+AC_INIT([gnome-shell],[3.14.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
 
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_SRCDIR([src/shell-global.c])
@@ -76,7 +76,7 @@ AC_MSG_RESULT($enable_systemd)
 CLUTTER_MIN_VERSION=1.15.90
 GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
 GJS_MIN_VERSION=1.39.0
-MUTTER_MIN_VERSION=3.14.1
+MUTTER_MIN_VERSION=3.14.2
 GTK_MIN_VERSION=3.13.2
 GIO_MIN_VERSION=2.37.0
 LIBECAL_MIN_VERSION=3.5.3
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index bb5d2c4..10ceb34 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -1494,6 +1494,10 @@ StScrollBar StButton#vhandle:active {
     text-align: right;
 }
 
+.events-day-time-ellipses {
+    color: rgba(153, 153, 153, 1.0);
+}
+
 .events-day-time:rtl {
     text-align: left;
 }
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 1e94015..4a12698 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1564,10 +1564,11 @@ const AppIcon = new Lang.Class({
         this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
 
         this._menuTimeoutId = 0;
-        this._stateChangedId = this.app.connect('notify::state',
-                                                Lang.bind(this,
-                                                          this._onStateChanged));
-        this._onStateChanged();
+        this._stateChangedId = this.app.connect('notify::state', Lang.bind(this,
+            function () {
+                this._updateRunningStyle();
+            }));
+        this._updateRunningStyle();
     },
 
     _onDestroy: function() {
@@ -1588,7 +1589,7 @@ const AppIcon = new Lang.Class({
         }
     },
 
-    _onStateChanged: function() {
+    _updateRunningStyle: function() {
         if (this.app.state != Shell.AppState.STOPPED)
             this.actor.add_style_class_name('running');
         else
diff --git a/js/ui/background.js b/js/ui/background.js
index 781f202..ad0cacc 100644
--- a/js/ui/background.js
+++ b/js/ui/background.js
@@ -106,6 +106,8 @@ const Main = imports.ui.main;
 const Params = imports.misc.params;
 const Tweener = imports.ui.tweener;
 
+const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
+
 const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
 const PRIMARY_COLOR_KEY = 'primary-color';
 const SECONDARY_COLOR_KEY = 'secondary-color';
@@ -160,6 +162,7 @@ const BackgroundCache = new Lang.Class({
                 }));
                 GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
             }
+            return;
         }
 
         let animation = new Animation({ filename: params.filename });
@@ -452,6 +455,7 @@ const SystemBackground = new Lang.Class({
 
         if (_systemBackground == null) {
             _systemBackground = new Meta.Background({ meta_screen: global.screen });
+            _systemBackground.set_color(DEFAULT_BACKGROUND_COLOR);
             _systemBackground.set_filename(filename, GDesktopEnums.BackgroundStyle.WALLPAPER);
         }
 
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index 77f8b64..ab0cc76 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -13,6 +13,7 @@ const Shell = imports.gi.Shell;
 
 const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
 const SHOW_WEEKDATE_KEY = 'show-weekdate';
+const ELLIPSIS_CHAR = '\u2026';
 
 // alias to prevent xgettext from picking up strings translated in GTK+
 const gtk30_ = Gettext_gtk30.gettext;
@@ -58,19 +59,21 @@ function _getEndOfDay(date) {
     return ret;
 }
 
-function _formatEventTime(event, clockFormat) {
+function _formatEventTime(event, clockFormat, periodBegin, periodEnd) {
     let ret;
-    if (event.allDay) {
+    let allDay = (event.allDay || (event.date <= periodBegin && event.end >= periodEnd));
+    if (allDay) {
         /* Translators: Shown in calendar event list for all day events
          * Keep it short, best if you can use less then 10 characters
          */
         ret = C_("event list time", "All Day");
     } else {
+        let date = event.date >= periodBegin ? event.date : event.end;
         switch (clockFormat) {
         case '24h':
             /* Translators: Shown in calendar event list, if 24h format,
                \u2236 is a ratio character, similar to : */
-            ret = event.date.toLocaleFormat(C_("event list time", "%H\u2236%M"));
+            ret = date.toLocaleFormat(C_("event list time", "%H\u2236%M"));
             break;
 
         default:
@@ -79,7 +82,7 @@ function _formatEventTime(event, clockFormat) {
             /* Translators: Shown in calendar event list, if 12h format,
                \u2236 is a ratio character, similar to : and \u2009 is
                a thin space */
-            ret = event.date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p"));
+            ret = date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p"));
             break;
         }
     }
@@ -361,6 +364,12 @@ const DBusEventSource = new Lang.Class({
                 result.push(event);
             }
         }
+        result.sort(function(event1, event2) {
+            // sort events by end time on ending day
+            let d1 = event1.date < begin && event1.end <= end ? event1.end : event1.date;
+            let d2 = event2.date < begin && event2.end <= end ? event2.end : event2.date;
+            return d1.getTime() - d2.getTime();
+        });
         return result;
     },
 
@@ -721,12 +730,16 @@ const EventsList = new Lang.Class({
         this._eventSource.connect('changed', Lang.bind(this, this._update));
     },
 
-    _addEvent: function(event, index, includeDayName) {
+    _addEvent: function(event, index, includeDayName, periodBegin, periodEnd) {
         let dayString;
-        if (includeDayName)
-            dayString = _getEventDayAbbreviation(event.date.getDay());
-        else
+        if (includeDayName) {
+            if (event.date >= periodBegin)
+                dayString = _getEventDayAbbreviation(event.date.getDay());
+            else /* show event end day if it began earlier */
+                dayString = _getEventDayAbbreviation(event.end.getDay());
+        } else {
             dayString = '';
+        }
 
         let dayLabel = new St.Label({ style_class: 'events-day-dayname',
                                       text: dayString,
@@ -739,16 +752,30 @@ const EventsList = new Lang.Class({
 
         let layout = this.actor.layout_manager;
         layout.attach(dayLabel, rtl ? 2 : 0, index, 1, 1);
-
         let clockFormat = this._desktopSettings.get_string(CLOCK_FORMAT_KEY);
-        let timeString = _formatEventTime(event, clockFormat);
+        let timeString = _formatEventTime(event, clockFormat, periodBegin, periodEnd);
         let timeLabel = new St.Label({ style_class: 'events-day-time',
                                        text: timeString,
                                        y_align: Clutter.ActorAlign.START });
         timeLabel.clutter_text.line_wrap = false;
         timeLabel.clutter_text.ellipsize = false;
 
-        layout.attach(timeLabel, 1, index, 1, 1);
+        let preEllipsisLabel = new St.Label({ style_class: 'events-day-time-ellipses',
+                                              text: ELLIPSIS_CHAR,
+                                              y_align: Clutter.ActorAlign.START });
+        let postEllipsisLabel = new St.Label({ style_class: 'events-day-time-ellipses',
+                                               text: ELLIPSIS_CHAR,
+                                               y_align: Clutter.ActorAlign.START });
+        if (event.allDay || event.date >= periodBegin)
+            preEllipsisLabel.opacity = 0;
+        if (event.allDay || event.end <= periodEnd)
+            postEllipsisLabel.opacity = 0;
+
+        let timeLabelBoxLayout = new St.BoxLayout();
+        timeLabelBoxLayout.add(preEllipsisLabel);
+        timeLabelBoxLayout.add(timeLabel);
+        timeLabelBoxLayout.add(postEllipsisLabel);
+        layout.attach(timeLabelBoxLayout, 1, index, 1, 1);
 
         let titleLabel = new St.Label({ style_class: 'events-day-task',
                                         text: event.summary,
@@ -759,8 +786,8 @@ const EventsList = new Lang.Class({
         layout.attach(titleLabel, rtl ? 0 : 2, index, 1, 1);
     },
 
-    _addPeriod: function(header, index, begin, end, includeDayName, showNothingScheduled) {
-        let events = this._eventSource.getEvents(begin, end);
+    _addPeriod: function(header, index, periodBegin, periodEnd, includeDayName, showNothingScheduled) {
+        let events = this._eventSource.getEvents(periodBegin, periodEnd);
 
         if (events.length == 0 && !showNothingScheduled)
             return index;
@@ -771,15 +798,14 @@ const EventsList = new Lang.Class({
         index++;
 
         for (let n = 0; n < events.length; n++) {
-            this._addEvent(events[n], index, includeDayName);
+            this._addEvent(events[n], index, includeDayName, periodBegin, periodEnd);
             index++;
         }
 
         if (events.length == 0 && showNothingScheduled) {
-            let now = new Date();
             /* Translators: Text to show if there are no events */
-            let nothingEvent = new CalendarEvent(now, now, _("Nothing Scheduled"), true);
-            this._addEvent(nothingEvent, index, false);
+            let nothingEvent = new CalendarEvent(periodBegin, periodBegin, _("Nothing Scheduled"), true);
+            this._addEvent(nothingEvent, index, false, periodBegin, periodEnd);
             index++;
         }
 
diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js
index 2a3412d..2d8d715 100644
--- a/js/ui/components/networkAgent.js
+++ b/js/ui/components/networkAgent.js
@@ -604,9 +604,15 @@ const NetworkAgent = new Lang.Class({
     Name: 'NetworkAgent',
 
     _init: function() {
-        this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
-                                                capabilities: NMClient.SecretAgentCapabilities.VPN_HINTS
-                                              });
+        try {
+            this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
+                                                    capabilities: NMClient.SecretAgentCapabilities.VPN_HINTS
+                                                  });
+        } catch(e) {
+            // Support older versions without NetworkAgent:capabilities
+            this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent'
+                                                  });
+        }
 
         this._dialogs = { };
         this._vpnRequests = { };
diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js
index db8f2a5..8b0213c 100644
--- a/js/ui/dateMenu.js
+++ b/js/ui/dateMenu.js
@@ -147,7 +147,7 @@ const DateMenuButton = new Lang.Class({
         let now = new Date();
         return now.getYear() == date.getYear() &&
                now.getMonth() == date.getMonth() &&
-               now.getDay() == date.getDay();
+               now.getDate() == date.getDate();
     },
 
     _appInstalledChanged: function() {
diff --git a/js/ui/layout.js b/js/ui/layout.js
index c61376d..9228bd1 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -20,7 +20,6 @@ const Tweener = imports.ui.tweener;
 const STARTUP_ANIMATION_TIME = 0.5;
 const KEYBOARD_ANIMATION_TIME = 0.15;
 const BACKGROUND_FADE_ANIMATION_TIME = 1.0;
-const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
 
 // The message tray takes this much pressure
 // in the pressure barrier at once to release it.
@@ -160,10 +159,10 @@ const LayoutManager = new Lang.Class({
         this._isPopupWindowVisible = false;
         this._startingUp = true;
 
-        // Normally, the stage is always covered so Clutter doesn't need to clear
-        // it; however it becomes visible during the startup animation
-        // See the comment below for a longer explanation
-        global.stage.background_color = DEFAULT_BACKGROUND_COLOR;
+        // We don't want to paint the stage background color because either
+        // the SystemBackground we create or the MetaBackgroundActor inside
+        // global.window_group covers the entirety of the screen.
+        global.stage.no_clear_hint = true;
 
         // Set up stage hierarchy to group all UI actors under one container.
         this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
@@ -591,10 +590,6 @@ const LayoutManager = new Lang.Class({
     //
     // When starting a normal user session, we want to grow it out of the middle
     // of the screen.
-    //
-    // Usually, we don't want to paint the stage background color because the
-    // MetaBackgroundActor inside global.window_group covers the entirety of the
-    // screen. So, we set no_clear_hint at the end of the animation.
 
     _prepareStartupAnimation: function() {
         // During the initial transition, add a simple actor to block all events,
@@ -675,10 +670,6 @@ const LayoutManager = new Lang.Class({
     },
 
     _startupAnimationComplete: function() {
-        // At this point, the UI group is covering everything, so
-        // we no longer need to clear the stage
-        global.stage.no_clear_hint = true;
-
         this._coverPane.destroy();
         this._coverPane = null;
 
diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js
index ccbf8cd..101c14c 100644
--- a/js/ui/magnifier.js
+++ b/js/ui/magnifier.js
@@ -1198,12 +1198,7 @@ const ZoomRegion = new Lang.Class({
 
         // Add a background for when the magnified uiGroup is scrolled
         // out of view (don't want to see desktop showing through).
-        this._background = new Clutter.Actor({ background_color: Main.DEFAULT_BACKGROUND_COLOR,
-                                               layout_manager: new Clutter.BinLayout(),
-                                               width: global.screen_width,
-                                               height: global.screen_height });
-        let noiseTexture = (new Background.SystemBackground()).actor;
-        this._background.add_actor(noiseTexture);
+        this._background = (new Background.SystemBackground()).actor;
         mainGroup.add_actor(this._background);
 
         // Clone the group that contains all of UI on the screen.  This is the
diff --git a/js/ui/main.js b/js/ui/main.js
index f9bb59e..2459069 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -40,8 +40,6 @@ const Magnifier = imports.ui.magnifier;
 const XdndHandler = imports.ui.xdndHandler;
 const Util = imports.misc.util;
 
-const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
-
 const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
 const STICKY_KEYS_ENABLE = 'stickykeys-enable';
 const GNOMESHELL_STARTED_MESSAGE_ID = 'f3ea493c22934e26811cd62abe8e203a';
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index cedb410..ad7c5c8 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -2432,8 +2432,22 @@ const MessageTray = new Lang.Class({
             if (shouldShowNotification && nextNotification) {
                 let limited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen;
                 let showNextNotification = (!limited || nextNotification.forFeedback || nextNotification.urgency == Urgency.CRITICAL);
-                if (showNextNotification)
-                    this._showNotification();
+                if (showNextNotification) {
+                    let len = this._notificationQueue.length;
+                    if (len > 1) {
+                        this._notificationQueue.length = 0;
+                        let source = new SystemNotificationSource();
+                        this.add(source);
+                        let notification = new Notification(source, ngettext("%d new message", "%d new messages", len).format(len));
+                        notification.setTransient(true);
+                        notification.connect('clicked', Lang.bind(this, function() {
+                            this.openTray();
+                        }));
+                        source.notify(notification);
+                    } else {
+                        this._showNotification();
+                    }
+                }
             }
         } else if (this._notificationState == State.SHOWN) {
             let expired = (this._userActiveWhileNotificationShown &&
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index e82dfb3..d0e8140 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -193,8 +193,10 @@ const ViewSelector = new Lang.Class({
                 // the windows to animate, but now we no longer want to
                 // show it given that we are now on the apps page or
                 // search page.
-                if (this._activePage != this._workspacesPage)
+                if (this._activePage != this._workspacesPage) {
                     this._workspacesPage.opacity = 0;
+                    this._workspacesPage.hide();
+                }
             }));
 
         Main.wm.addKeybinding('toggle-application-view',
Index: debian/changelog
===================================================================
--- debian/changelog	(révision 43950)
+++ debian/changelog	(copie de travail)
@@ -1,3 +1,16 @@
+gnome-shell (3.14.2-1) unstable; urgency=medium
+
+  * gnome-shell.gsettings-override: remove shotwell which is no longer 
+    part of the default installation.
+  * New upstream bugfix release.
+    + Summarize notifications instead of queuing up.
+  * 01_network_list.patch: patch from upstream git. Fix an UI bug when 
+    removing network connections.
+  * 02_auth_prompt.patch: patch from upstream git. Fix the prompt with  
+    disable_user_list after canceling an attempt. Closes: #683338.
+
+ -- Josselin Mouette <joss@debian.org>  Sun, 30 Nov 2014 13:52:46 +0100
+
 gnome-shell (3.14.1-2) unstable; urgency=medium
 
   [ Laurent Bigonville ]
Index: debian/gnome-shell.gsettings-override
===================================================================
--- debian/gnome-shell.gsettings-override	(révision 43950)
+++ debian/gnome-shell.gsettings-override	(copie de travail)
@@ -1,2 +1,2 @@
 [org.gnome.shell]
-favorite-apps=[ 'iceweasel.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'libreoffice-writer.desktop', 'org.gnome.Nautilus.desktop', 'yelp.desktop' ]
+favorite-apps=[ 'iceweasel.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'libreoffice-writer.desktop', 'org.gnome.Nautilus.desktop', 'yelp.desktop' ]
Index: debian/control
===================================================================
--- debian/control	(révision 43950)
+++ debian/control	(copie de travail)
@@ -6,7 +6,7 @@
 Section: gnome
 Priority: optional
 Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
-Uploaders: Andreas Henriksson <andreas@fatal.se>, Laurent Bigonville <bigon@debian.org>
+Uploaders: Andreas Henriksson <andreas@fatal.se>, Jordi Mallach <jordi@debian.org>, Josselin Mouette <joss@debian.org>, Laurent Bigonville <bigon@debian.org>
 Build-Depends: autotools-dev,
                cdbs,
                debhelper (>= 8.1.3~),
Index: debian/patches/01_network_list.patch
===================================================================
--- debian/patches/01_network_list.patch	(révision 0)
+++ debian/patches/01_network_list.patch	(copie de travail)
@@ -0,0 +1,32 @@
+From 86618ce1f963be53410ac5e68d99a8b7bb82e0c6 Mon Sep 17 00:00:00 2001
+From: Ryan Lortie <desrt@desrt.ca>
+Date: Sun, 16 Nov 2014 15:50:14 -0800
+Subject: network: properly remove connections from list
+
+Due to a typo we were always removing the first (index 0) connection
+from the global list of connections instead of the correct one.
+
+This resulted in some connections remaining in the shell's connection
+list long after they were removed.  In particular, this resulted in
+multiple copies of a bluetooth connection appearing after suspend/resume
+(when the device was readded and the cached connection list was
+rescanned).
+
+https://bugzilla.gnome.org/show_bug.cgi?id=740227
+
+diff --git a/js/ui/status/network.js b/js/ui/status/network.js
+index 049406d..4f02d78 100644
+--- a/js/ui/status/network.js
++++ b/js/ui/status/network.js
+@@ -1866,7 +1866,7 @@ const NMApplet = new Lang.Class({
+     _connectionRemoved: function(connection) {
+         let pos = this._connections.indexOf(connection);
+         if (pos != -1)
+-            this._connections.splice(connection, 1);
++            this._connections.splice(pos, 1);
+ 
+         let section = connection._section;
+ 
+-- 
+cgit v0.10.1
+
Index: debian/patches/02_auth_prompt.patch
===================================================================
--- debian/patches/02_auth_prompt.patch	(révision 0)
+++ debian/patches/02_auth_prompt.patch	(copie de travail)
@@ -0,0 +1,34 @@
+From 2ceaa05a5a3aa3e8b9c67877eb968b2813fb4d18 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Tue, 7 Oct 2014 14:30:34 -0400
+Subject: gdm: fix sensitivity of auth prompt when cancelling early and user
+ list is disabled
+
+If the user list is disabled and the user clicks cancel quickly enough
+after typing their username, they can get in a state where the
+auth prompt gets stuck in the insensitive state.
+
+This is because the login dialog code makes the prompt insensitive
+while while pam is processing the provided username, but the prompt
+only makes itself sensitive again when it is hidden.
+
+This commit makes it sensitive right before asking for a username again.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=740141
+
+diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
+index ceaccaa..6a8ae0a 100644
+--- a/js/gdm/loginDialog.js
++++ b/js/gdm/loginDialog.js
+@@ -643,6 +643,8 @@ const LoginDialog = new Lang.Class({
+                                                         realmManager.release();
+                                                     }));
+         this._updateCancelButton();
++
++        this._authPrompt.updateSensitivity(true);
+         this._showPrompt();
+     },
+ 
+-- 
+cgit v0.10.1
+
Index: debian/patches/series
===================================================================
--- debian/patches/series	(révision 43950)
+++ debian/patches/series	(copie de travail)
@@ -1,3 +1,5 @@
+01_network_list.patch
+02_auth_prompt.patch
 #10-make-NetworkManager-optional.patch
 27-nm-libexec-path.patch
 #30-remoteMenu-Prevent-the-shell-from-becoming-unrespons.patch

--- End Message ---
--- Begin Message ---
On Mon, 2014-12-01 at 18:52 +0100, Josselin Mouette wrote:
> Control: tags -1 -moreinfo
> 
> Le dimanche 30 novembre 2014 à 16:41 +0000, Adam D. Barratt a écrit : 
> > > gnome-shell (3.14.2-1) unstable; urgency=medium
> > 
> > Please go ahead, and ensure that the upload is in unstable before
> > December 5th, removing the "moreinfo" tag once the package has been
> > accepted.
> 
> It’s here.

Unblocked, thanks.

Regards,

Adam

--- End Message ---

Reply to: