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

Bug#1032578: unblock: gnome-shell/43.3-3



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: gnome-shell@packages.debian.org
Control: affects -1 + src:gnome-shell

Please unblock package gnome-shell

[ Reason ]
Fix #1032497

[ Impact ]
Users with some triggering factor (not completely understood, but an
unreliable display connector is one possible culprit) will find that
the Shell is stuck and unresponsive once per 2-3 logins.

[ Tests ]
Manual testing (normal use of GNOME), and the bug reporter has confirmed
that they no longer see the bug with this updated version.

[ Risks ]
Straightforward patch backported from upstream 44.rc, looks obviously
correct. I've asked upstream to consider including this change in 43.4,
but they're concentrating on GNOME 44 deadlines right now so there has
been no response yet.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

unblock gnome-shell/43.3-3
diffstat for gnome-shell-43.3 gnome-shell-43.3

 debian/changelog                                                               |   11 ++
 debian/patches/overview-Don-t-claim-to-be-SHOWN-when-HIDDEN-during-start.patch |   38 ++++++++++
 debian/patches/overview-Hide-when-failing-to-take-grab-at-end-of-startup.patch |   27 +++++++
 debian/patches/series                                                          |    2 
 js/ui/overview.js                                                              |    7 +
 5 files changed, 85 insertions(+)

diff -Nru gnome-shell-43.3/debian/changelog gnome-shell-43.3/debian/changelog
--- gnome-shell-43.3/debian/changelog	2023-03-02 09:14:28.000000000 +0000
+++ gnome-shell-43.3/debian/changelog	2023-03-08 11:09:54.000000000 +0000
@@ -1,3 +1,14 @@
+gnome-shell (43.3-3) unstable; urgency=medium
+
+  * Team upload
+  * d/p/overview-Don-t-claim-to-be-SHOWN-when-HIDDEN-during-start.patch,
+    d/p/overview-Hide-when-failing-to-take-grab-at-end-of-startup.patch:
+    Fix regression in 43.3 which could cause the shell to become
+    unresponsive, for example if a display is plugged or unplugged during
+    the startup animation. (Closes: #1032497)
+
+ -- Simon McVittie <smcv@debian.org>  Wed, 08 Mar 2023 11:09:54 +0000
+
 gnome-shell (43.3-2) unstable; urgency=medium
 
   * Team upload
diff -Nru gnome-shell-43.3/debian/patches/overview-Don-t-claim-to-be-SHOWN-when-HIDDEN-during-start.patch gnome-shell-43.3/debian/patches/overview-Don-t-claim-to-be-SHOWN-when-HIDDEN-during-start.patch
--- gnome-shell-43.3/debian/patches/overview-Don-t-claim-to-be-SHOWN-when-HIDDEN-during-start.patch	1970-01-01 01:00:00.000000000 +0100
+++ gnome-shell-43.3/debian/patches/overview-Don-t-claim-to-be-SHOWN-when-HIDDEN-during-start.patch	2023-03-08 11:09:54.000000000 +0000
@@ -0,0 +1,38 @@
+From: Sebastian Keller <skeller@gnome.org>
+Date: Wed, 1 Mar 2023 21:43:15 +0100
+Subject: overview: Don't claim to be SHOWN when HIDDEN during startup
+ animation
+
+When the overview gets hidden during the startup animation, the callback
+would still change the state to SHOWN, despite the overview not being
+shown.
+
+This can happen for example if a `monitors-changed` signal triggers a
+relayout during startup.
+
+Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2514#note_1683525
+Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6478
+Bug-Debian: https://bugs.debian.org/1032497
+Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2667
+Origin: upstream, 44.rc, commit:bb42973730a1a96881cb63bf7c1e9fdc68fb9fba
+---
+ js/ui/overview.js | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/js/ui/overview.js b/js/ui/overview.js
+index a3540d4..cd4b01b 100644
+--- a/js/ui/overview.js
++++ b/js/ui/overview.js
+@@ -684,6 +684,12 @@ var Overview = class extends Signals.EventEmitter {
+         this._changeShownState(OverviewShownState.SHOWING);
+ 
+         this._overview.runStartupAnimation(() => {
++            // Overview got hidden during startup animation
++            if (this._shownState !== OverviewShownState.SHOWING) {
++                callback();
++                return;
++            }
++
+             if (!this._syncGrab()) {
+                 callback();
+                 return;
diff -Nru gnome-shell-43.3/debian/patches/overview-Hide-when-failing-to-take-grab-at-end-of-startup.patch gnome-shell-43.3/debian/patches/overview-Hide-when-failing-to-take-grab-at-end-of-startup.patch
--- gnome-shell-43.3/debian/patches/overview-Hide-when-failing-to-take-grab-at-end-of-startup.patch	1970-01-01 01:00:00.000000000 +0100
+++ gnome-shell-43.3/debian/patches/overview-Hide-when-failing-to-take-grab-at-end-of-startup.patch	2023-03-08 11:09:54.000000000 +0000
@@ -0,0 +1,27 @@
+From: Sebastian Keller <skeller@gnome.org>
+Date: Wed, 1 Mar 2023 21:48:45 +0100
+Subject: overview: Hide when failing to take grab at end of startup animation
+
+Otherwise keyboard input would be going to whatever window was
+preventing us from taking the grab while it is obscured by the overview.
+
+Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6478
+Bug-Debian: https://bugs.debian.org/1032497
+Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2667
+Origin: upstream, 44.rc, commit:56478f21e6641478f7509527fd3ed40169b2ec67
+---
+ js/ui/overview.js | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/js/ui/overview.js b/js/ui/overview.js
+index cd4b01b..757a8e4 100644
+--- a/js/ui/overview.js
++++ b/js/ui/overview.js
+@@ -692,6 +692,7 @@ var Overview = class extends Signals.EventEmitter {
+ 
+             if (!this._syncGrab()) {
+                 callback();
++                this.hide();
+                 return;
+             }
+ 
diff -Nru gnome-shell-43.3/debian/patches/series gnome-shell-43.3/debian/patches/series
--- gnome-shell-43.3/debian/patches/series	2023-03-02 09:14:28.000000000 +0000
+++ gnome-shell-43.3/debian/patches/series	2023-03-08 11:09:54.000000000 +0000
@@ -11,5 +11,7 @@
 Update-Lithuanian-translation.patch
 Update-Serbian-translation.patch
 Update-Hungarian-translation.patch
+overview-Don-t-claim-to-be-SHOWN-when-HIDDEN-during-start.patch
+overview-Hide-when-failing-to-take-grab-at-end-of-startup.patch
 debian/gnome-shell-extension-prefs-Give-Debian-specific-advice.patch
 debian/Revert-build-Port-to-gcr4.patch
diff -Nru gnome-shell-43.3/js/ui/overview.js gnome-shell-43.3/js/ui/overview.js
--- gnome-shell-43.3/js/ui/overview.js	2023-02-14 00:11:32.000000000 +0000
+++ gnome-shell-43.3/js/ui/overview.js	2023-03-08 19:25:13.000000000 +0000
@@ -684,8 +684,15 @@
         this._changeShownState(OverviewShownState.SHOWING);
 
         this._overview.runStartupAnimation(() => {
+            // Overview got hidden during startup animation
+            if (this._shownState !== OverviewShownState.SHOWING) {
+                callback();
+                return;
+            }
+
             if (!this._syncGrab()) {
                 callback();
+                this.hide();
                 return;
             }
 

Reply to: