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

Bug#1036858: bookworm-pu: package gnome-shell/43.6-1~deb12u1



On Wed, 07 Jun 2023 at 17:12:49 +0100, Simon McVittie wrote:
> On Sun, 28 May 2023 at 00:29:58 +0100, Simon McVittie wrote:
> > The gnome-shell 43.5 release from GNOME upstream seems like something
> > we should have in a bookworm update.
> 
> So does 43.6.
> 
> > This requires mutter 43.5, for which see #1036856.
> 
> Still true.
...
>   [ ] the issue is verified as fixed in unstable
>       - intentionally not done during the full freeze

As with mutter, I uploaded this to unstable after the bookworm release and
it has now reached testing. I've uploaded this in the hope that it can be
accepted into 12.1.

Updated debdiff attached.

    smcv
git diff patch-queue/43.4.. | filterdiff -p1 -x'debian/patches/*.patch' -x.gitlab-ci.yml -x'.gitlab-ci/*' -x'po/*.po'

diffstat for gnome-shell-43.4 gnome-shell-43.6

 .gitlab-ci.yml                                                                |    6 
 .gitlab-ci/install-meson-project.sh                                           |   84 
 NEWS                                                                          |   31 
 debian/changelog                                                              |   56 
 debian/control                                                                |    8 
 debian/control.in                                                             |    8 
 debian/patches/Update-Abkhazian-translation.patch                             | 4910 ----------
 debian/patches/debian/Revert-build-Port-to-gcr4.patch                         |    2 
 debian/patches/series                                                         |    1 
 js/misc/ibusManager.js                                                        |    2 
 js/misc/objectManager.js                                                      |    2 
 js/ui/appDisplay.js                                                           |    3 
 js/ui/components/autorunManager.js                                            |    2 
 js/ui/components/polkitAgent.js                                               |    1 
 js/ui/dash.js                                                                 |    3 
 js/ui/dnd.js                                                                  |    1 
 js/ui/messageTray.js                                                          |    5 
 js/ui/modalDialog.js                                                          |    2 
 js/ui/panelMenu.js                                                            |    3 
 js/ui/screenshot.js                                                           |    8 
 js/ui/search.js                                                               |    7 
 js/ui/status/location.js                                                      |    2 
 js/ui/windowPreview.js                                                        |    4 
 js/ui/workspacesView.js                                                       |    2 
 meson.build                                                                   |    2 
 po/pt_BR.po                                                                   |  394 
 po/zh_CN.po                                                                   |  366 
 src/shell-app-system.c                                                        |   37 
 src/shell-window-preview-layout.c                                             |    4 
 subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in |    2 
 subprojects/extensions-app/generate-translations.sh                           |    2 
 subprojects/extensions-app/meson.build                                        |    2 
 subprojects/extensions-app/subprojects/shew/meson.build                       |    2 
 subprojects/extensions-tool/generate-translations.sh                          |    2 
 subprojects/extensions-tool/meson.build                                       |    2 
 subprojects/shew/meson.build                                                  |    2 
 36 files changed, 634 insertions(+), 5336 deletions(-)

diff -Nru gnome-shell-43.4/debian/changelog gnome-shell-43.6/debian/changelog
--- gnome-shell-43.4/debian/changelog	2023-04-10 14:07:38.000000000 +0100
+++ gnome-shell-43.6/debian/changelog	2023-06-11 00:08:43.000000000 +0100
@@ -1,3 +1,59 @@
+gnome-shell (43.6-1~deb12u1) bookworm; urgency=medium
+
+  * Rebuild for bookworm
+
+ -- Simon McVittie <smcv@debian.org>  Sun, 11 Jun 2023 00:08:43 +0100
+
+gnome-shell (43.6-1) unstable; urgency=medium
+
+  * New upstream stable release 43.5
+    - Fix a regression in 43~beta involving detection of hotplugged media
+      with autorunnable content (gnome-shell!2745)
+    - Make search results fill unused space as intended (gnome-shell#5924)
+    - Improve matching of app StartupWMClass to a .desktop file, giving
+      priority to apps that were not hidden by OnlyShowIn under the current
+      desktop environment, in particular preferring gnome-system-monitor's
+      non-KDE-specific .desktop file while running GNOME (gnome-shell!2721)
+    - Fix assertion failures after a window preview is destroyed
+      (gnome-shell#5512, gnome-shell#6065)
+    - Avoid destroying labels twice, most commonly when using
+      gnome-shell-extension-dash-to-dock (gnome-shell!2739)
+    - Avoid keyboard navigation focus getting stuck on top bar buttons with
+      no associated menu (gnome-shell!2734, might help #1032319)
+    - Fix queued notifications getting into a state where they can no
+      longer be removed (gnome-shell!2736)
+    - Receive notifications of removed objects from D-Bus ObjectManager
+      instances correctly (gnome-shell!2730)
+    - Fix a cursor appearing at 0,0 in screenshots that should not
+      include it (gnome-shell!2702)
+    - Update visibility of workspaces in workspace switcher when required
+      (gnome-shell#6519)
+    - After 60 second timeout in logout/reboot/poweroff confirmation
+      dialog, do the requested action instead of leaving the Shell in a
+      broken state (gnome-shell#6506)
+    - Fix an assertion failure during shutdown (gnome-shell#6512)
+    - Fix an assertion failure if Geoclue isn't D-Bus-activatable
+      (gnome-shell!2689)
+    - Fix a regression in which the cursor would not be included in
+      screenshots since mutter 43.1 (gnome-shell!2710)
+    - Upstream CI fixes not relevant to Debian
+    - Translation update: zh_CN
+  * New upstream stable release 43.6
+    - Fix a crash when a window preview is destroyed (gnome-shell#6570)
+    - When cancelling the polkit agent prompt while using
+      gnome-remote-desktop, don't break subsequent polkit prompts
+      (gnome-shell!2761)
+    - Fix "TypeError: this._dragActor is null" warnings related to
+      drag-and-drop (gnome-shell!2770)
+    - Fix input method popup getting stuck on screen during engine changes
+      (gnome-shell#6717)
+    - Translation update: pt_BR
+  * d/control.in: Build-depend on mutter 43.5, for a newly-public utility
+    function needed by gnome-shell!2710
+  * d/patches: Drop ab translation patch, applied upstream
+
+ -- Simon McVittie <smcv@debian.org>  Sat, 10 Jun 2023 21:17:13 +0100
+
 gnome-shell (43.4-1) unstable; urgency=medium
 
   * Team upload
diff -Nru gnome-shell-43.4/debian/control gnome-shell-43.6/debian/control
--- gnome-shell-43.4/debian/control	2023-04-10 14:07:38.000000000 +0100
+++ gnome-shell-43.6/debian/control	2023-06-11 00:08:43.000000000 +0100
@@ -48,8 +48,8 @@
                libgtk-4-dev,
                libibus-1.0-dev (>= 1.5.22-2ubuntu2~),
                libjson-glib-dev,
-               libmutter-11-dev (>= 43.0),
-               libmutter-test-11 (>= 43.0) <!nocheck>,
+               libmutter-11-dev (>= 43.5),
+               libmutter-test-11 (>= 43.5) <!nocheck>,
                libnm-dev [linux-any],
                libpipewire-0.3-dev (>= 0.3.10) [linux-any],
                libpolkit-agent-1-dev,
@@ -62,7 +62,7 @@
                libxml2-dev,
                mesa-common-dev,
                meson (>= 0.58.0),
-               mutter (>= 43.0) <!nocheck>,
+               mutter (>= 43.5) <!nocheck>,
                pkg-config,
                sassc,
                systemd [linux-any],
@@ -96,7 +96,7 @@
          gir1.2-gweather-4.0 (>= 4.1),
          gir1.2-freedesktop,
          gir1.2-ibus-1.0 (>= 1.5.22-2ubuntu2~),
-         gir1.2-mutter-11 (>= 43.0),
+         gir1.2-mutter-11 (>= 43.5),
          gir1.2-nm-1.0 [linux-any],
          gir1.2-nma-1.0 [linux-any],
          gir1.2-pango-1.0,
diff -Nru gnome-shell-43.4/debian/control.in gnome-shell-43.6/debian/control.in
--- gnome-shell-43.4/debian/control.in	2023-04-10 14:07:38.000000000 +0100
+++ gnome-shell-43.6/debian/control.in	2023-06-11 00:08:43.000000000 +0100
@@ -44,8 +44,8 @@
                libgtk-4-dev,
                libibus-1.0-dev (>= 1.5.22-2ubuntu2~),
                libjson-glib-dev,
-               libmutter-11-dev (>= 43.0),
-               libmutter-test-11 (>= 43.0) <!nocheck>,
+               libmutter-11-dev (>= 43.5),
+               libmutter-test-11 (>= 43.5) <!nocheck>,
                libnm-dev [linux-any],
                libpipewire-0.3-dev (>= 0.3.10) [linux-any],
                libpolkit-agent-1-dev,
@@ -58,7 +58,7 @@
                libxml2-dev,
                mesa-common-dev,
                meson (>= 0.58.0),
-               mutter (>= 43.0) <!nocheck>,
+               mutter (>= 43.5) <!nocheck>,
                pkg-config,
                sassc,
                systemd [linux-any],
@@ -92,7 +92,7 @@
          gir1.2-gweather-4.0 (>= 4.1),
          gir1.2-freedesktop,
          gir1.2-ibus-1.0 (>= 1.5.22-2ubuntu2~),
-         gir1.2-mutter-11 (>= 43.0),
+         gir1.2-mutter-11 (>= 43.5),
          gir1.2-nm-1.0 [linux-any],
          gir1.2-nma-1.0 [linux-any],
          gir1.2-pango-1.0,
diff -Nru gnome-shell-43.4/debian/patches/series gnome-shell-43.6/debian/patches/series
--- gnome-shell-43.4/debian/patches/series	2023-04-10 14:07:38.000000000 +0100
+++ gnome-shell-43.6/debian/patches/series	2023-06-11 00:08:43.000000000 +0100
@@ -1,3 +1,2 @@
-Update-Abkhazian-translation.patch
 debian/gnome-shell-extension-prefs-Give-Debian-specific-advice.patch
 debian/Revert-build-Port-to-gcr4.patch
diff -Nru gnome-shell-43.4/js/misc/ibusManager.js gnome-shell-43.6/js/misc/ibusManager.js
--- gnome-shell-43.4/js/misc/ibusManager.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/misc/ibusManager.js	2023-06-03 11:50:05.000000000 +0100
@@ -3,6 +3,7 @@
 
 const { Gio, GLib, IBus, Meta, Shell } = imports.gi;
 const Signals = imports.misc.signals;
+const BoxPointer = imports.ui.boxpointer;
 
 const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
 
@@ -253,6 +254,7 @@
             return;
 
         this._currentEngineName = engineName;
+        this._candidatePopup.close(BoxPointer.PopupAnimation.NONE);
 
         if (this._registerPropertiesId != 0)
             return;
diff -Nru gnome-shell-43.4/js/misc/objectManager.js gnome-shell-43.6/js/misc/objectManager.js
--- gnome-shell-43.4/js/misc/objectManager.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/misc/objectManager.js	2023-06-03 11:50:05.000000000 +0100
@@ -130,7 +130,7 @@
 
         this.emit('interface-removed', interfaceName, proxy);
 
-        this._objects[objectPath][interfaceName] = null;
+        delete this._objects[objectPath][interfaceName];
 
         if (Object.keys(this._objects[objectPath]).length === 0) {
             delete this._objects[objectPath];
diff -Nru gnome-shell-43.4/js/ui/appDisplay.js gnome-shell-43.6/js/ui/appDisplay.js
--- gnome-shell-43.4/js/ui/appDisplay.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/appDisplay.js	2023-06-03 11:50:05.000000000 +0100
@@ -1201,7 +1201,8 @@
     }
 
     vfunc_unmap() {
-        this._swipeTracker.enabled = false;
+        if (this._swipeTracker)
+            this._swipeTracker.enabled = false;
         this._disconnectDnD();
         super.vfunc_unmap();
     }
diff -Nru gnome-shell-43.4/js/ui/components/autorunManager.js gnome-shell-43.6/js/ui/components/autorunManager.js
--- gnome-shell-43.4/js/ui/components/autorunManager.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/components/autorunManager.js	2023-06-03 11:50:05.000000000 +0100
@@ -102,7 +102,7 @@
             if (contentTypes.length === 0) {
                 const root = mount.get_root();
                 const hotplugSniffer = new HotplugSniffer();
-                [contentTypes] = hotplugSniffer.SniffURIAsync(root.get_uri());
+                [contentTypes] = await hotplugSniffer.SniffURIAsync(root.get_uri());
             }
         }
 
diff -Nru gnome-shell-43.4/js/ui/components/polkitAgent.js gnome-shell-43.6/js/ui/components/polkitAgent.js
--- gnome-shell-43.4/js/ui/components/polkitAgent.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/components/polkitAgent.js	2023-06-03 11:50:05.000000000 +0100
@@ -391,7 +391,6 @@
     }
 
     cancel() {
-        this.close(global.get_current_time());
         this._emitDone(true);
     }
 
diff -Nru gnome-shell-43.4/js/ui/dash.js gnome-shell-43.6/js/ui/dash.js
--- gnome-shell-43.4/js/ui/dash.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/dash.js	2023-06-03 11:50:05.000000000 +0100
@@ -71,6 +71,7 @@
         this.label = new St.Label({ style_class: 'dash-label' });
         this.label.hide();
         Main.layoutManager.addChrome(this.label);
+        this.label.connectObject('destroy', () => (this.label = null), this);
         this.label_actor = this.label;
 
         this.child = null;
@@ -82,7 +83,7 @@
         this.connect('destroy', () => {
             if (this.child != null)
                 this.child.destroy();
-            this.label.destroy();
+            this.label?.destroy();
         });
     }
 
diff -Nru gnome-shell-43.4/js/ui/dnd.js gnome-shell-43.6/js/ui/dnd.js
--- gnome-shell-43.4/js/ui/dnd.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/dnd.js	2023-06-03 11:50:05.000000000 +0100
@@ -551,6 +551,7 @@
                 let result = motionFunc(dragEvent);
                 if (result != DragMotionResult.CONTINUE) {
                     global.display.set_cursor(DRAG_CURSOR_MAP[result]);
+                    dragEvent.targetActor.disconnect(targetActorDestroyHandlerId);
                     return GLib.SOURCE_REMOVE;
                 }
             }
diff -Nru gnome-shell-43.4/js/ui/messageTray.js gnome-shell-43.6/js/ui/messageTray.js
--- gnome-shell-43.4/js/ui/messageTray.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/messageTray.js	2023-06-03 11:50:05.000000000 +0100
@@ -1006,9 +1006,8 @@
     }
 
     _onNotificationDestroy(notification) {
-        this._notificationRemoved = this._notification === notification;
-
-        if (this._notificationRemoved) {
+        if (this._notification === notification) {
+            this._notificationRemoved = true;
             if (this._notificationState === State.SHOWN ||
                 this._notificationState === State.SHOWING) {
                 this._updateNotificationTimeout(0);
diff -Nru gnome-shell-43.4/js/ui/modalDialog.js gnome-shell-43.6/js/ui/modalDialog.js
--- gnome-shell-43.4/js/ui/modalDialog.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/modalDialog.js	2023-06-03 11:50:05.000000000 +0100
@@ -282,7 +282,7 @@
             opacity: 0,
             duration: FADE_OUT_DIALOG_TIME,
             mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-            onComplete: () => (this.state = State.FADED_OUT),
+            onComplete: () => this._setState(State.FADED_OUT),
         });
     }
 });
diff -Nru gnome-shell-43.4/js/ui/panelMenu.js gnome-shell-43.6/js/ui/panelMenu.js
--- gnome-shell-43.4/js/ui/panelMenu.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/panelMenu.js	2023-06-03 11:50:05.000000000 +0100
@@ -108,6 +108,9 @@
             this.menu = new PopupMenu.PopupDummyMenu(this);
         else
             this.setMenu(new PopupMenu.PopupMenu(this, menuAlignment, St.Side.TOP, 0));
+
+        this.connect('key-press-event',
+            (o, ev) => global.focus_manager.navigate_from_event(ev));
     }
 
     setSensitive(sensitive) {
diff -Nru gnome-shell-43.4/js/ui/screenshot.js gnome-shell-43.6/js/ui/screenshot.js
--- gnome-shell-43.4/js/ui/screenshot.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/screenshot.js	2023-06-03 11:50:05.000000000 +0100
@@ -787,7 +787,7 @@
 
         this._cursor = null;
         this._cursorPoint = { x: 0, y: 0 };
-        this._shouldShowCursor = actor.get_children().some(c => c.has_pointer);
+        this._shouldShowCursor = window.has_pointer && window.has_pointer();
 
         this.connect('destroy', this._onDestroy.bind(this));
     }
@@ -917,6 +917,10 @@
         this.insert_child_below(this._cursor, this._border);
     }
 
+    getCursorTexture() {
+        return this._cursor?.content;
+    }
+
     setCursorVisible(visible) {
         if (!this._cursor)
             return;
@@ -1805,7 +1809,7 @@
 
             const texture = content.get_texture();
 
-            let cursorTexture = this._cursor.content?.get_texture();
+            let cursorTexture = window.getCursorTexture()?.get_texture();
             if (!this._cursor.visible)
                 cursorTexture = null;
 
diff -Nru gnome-shell-43.4/js/ui/search.js gnome-shell-43.6/js/ui/search.js
--- gnome-shell-43.4/js/ui/search.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/search.js	2023-06-03 11:50:05.000000000 +0100
@@ -534,7 +534,12 @@
     Signals: { 'terms-changed': {} },
 }, class SearchResultsView extends St.BoxLayout {
     _init() {
-        super._init({ name: 'searchResults', vertical: true });
+        super._init({
+            name: 'searchResults',
+            vertical: true,
+            x_expand: true,
+            y_expand: true,
+        });
 
         this._parentalControlsManager = ParentalControlsManager.getDefault();
         this._parentalControlsManager.connect('app-filter-changed', this._reloadRemoteProviders.bind(this));
diff -Nru gnome-shell-43.4/js/ui/status/location.js gnome-shell-43.6/js/ui/status/location.js
--- gnome-shell-43.4/js/ui/status/location.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/status/location.js	2023-06-03 11:50:05.000000000 +0100
@@ -160,7 +160,7 @@
     }
 
     _onGeoclueVanished() {
-        this._managerProxy.disconnectObject(this);
+        this._managerProxy?.disconnectObject(this);
         this._managerProxy = null;
 
         this.notify('in-use');
diff -Nru gnome-shell-43.4/js/ui/windowPreview.js gnome-shell-43.6/js/ui/windowPreview.js
--- gnome-shell-43.4/js/ui/windowPreview.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/windowPreview.js	2023-06-03 11:50:05.000000000 +0100
@@ -525,6 +525,7 @@
     _onDestroy() {
         this.metaWindow._delegate = null;
         this._delegate = null;
+        this._destroyed = true;
 
         if (this._longPressLater) {
             Meta.later_remove(this._longPressLater);
@@ -553,6 +554,9 @@
     }
 
     vfunc_leave_event(crossingEvent) {
+        if (this._destroyed)
+            return super.vfunc_leave_event(crossingEvent);
+
         if ((crossingEvent.flags & Clutter.EventFlags.FLAG_GRAB_NOTIFY) !== 0 &&
             global.stage.get_grab_actor() === this._closeButton)
             return super.vfunc_leave_event(crossingEvent);
diff -Nru gnome-shell-43.4/js/ui/workspacesView.js gnome-shell-43.6/js/ui/workspacesView.js
--- gnome-shell-43.4/js/ui/workspacesView.js	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/js/ui/workspacesView.js	2023-06-03 11:50:05.000000000 +0100
@@ -118,7 +118,6 @@
 
         global.window_manager.connectObject('switch-workspace',
             this._activeWorkspaceChanged.bind(this), this);
-        this._updateVisibility();
     }
 
     _getFirstFitAllWorkspaceBox(box, spacing, vertical) {
@@ -465,6 +464,7 @@
         }
 
         this._updateWorkspacesState();
+        this._updateVisibility();
     }
 
     _activeWorkspaceChanged(_wm, _from, _to, _direction) {
diff -Nru gnome-shell-43.4/meson.build gnome-shell-43.6/meson.build
--- gnome-shell-43.4/meson.build	2023-06-21 00:10:22.000000000 +0100
+++ gnome-shell-43.6/meson.build	2023-06-21 00:10:22.000000000 +0100
@@ -1,5 +1,5 @@
 project('gnome-shell', 'c',
-  version: '43.4',
+  version: '43.6',
   meson_version: '>= 0.58.0',
   license: 'GPLv2+'
 )
diff -Nru gnome-shell-43.4/NEWS gnome-shell-43.6/NEWS
--- gnome-shell-43.4/NEWS	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/NEWS	2023-06-03 11:50:05.000000000 +0100
@@ -1,3 +1,34 @@
+43.6
+====
+* Fix stuck authentication dialog in remote sessions [Joan; !2761]
+* Fix IM popup getting stuck on engine changes [Daniel; !2774]
+* Fixed crash [Carlos; !2756]
+* Misc. bug fixes and cleanups [Zacharie; !2770]
+
+Contributors:
+  Daniel Drake, Zacharie DUBRULLE, Carlos Garnacho, Joan Torres
+
+Translators:
+  Leônidas Araújo [pt_BR]
+
+43.5
+====
+* Fix window screenshots with pointer [Ivan; !2710, !2702]
+* Fix notifications getting stuck indefinitely [msizanoen1; !2736]
+* Fix keynav of menu-less buttons [Florian; !2734]
+* Fix corner cases when matching apps on StartupWmClass [Marco; !2721]
+* Fix occasional misalignment of search results [Sebastian; !2744]
+* Fix regression in content-type sniffing on autorun [Balló; !2745]
+* Misc. bug fixes and cleanups [Will, Daniel, Florian, Jonas, Marco, Sebastian;
+  !2689, !2693, !2696, !2699, !2730, !2739, !2738, !2712]
+
+Contributors:
+  Jonas Dreßler, Balló György, Sebastian Keller, Ivan Molodetskikh, msizanoen1,
+  Florian Müllner, Will Thompson, Marco Trevisan (Treviño), Daniel van Vugt
+
+Translators:
+  Nart Tlisha [ab], Boyuan Yang [zh_CN]
+
 43.4
 ====
 * Plugged leak [Sebastian; !2652]
diff -Nru gnome-shell-43.4/src/shell-app-system.c gnome-shell-43.6/src/shell-app-system.c
--- gnome-shell-43.4/src/shell-app-system.c	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/src/shell-app-system.c	2023-06-03 11:50:05.000000000 +0100
@@ -91,21 +91,43 @@
 		  G_TYPE_NONE, 0);
 }
 
+/*
+ * Check whether @wm_class matches @id exactly when ignoring the .desktop suffix
+ */
+static gboolean
+startup_wm_class_is_exact_match (const char *id,
+                                 const char *wm_class)
+{
+  size_t wm_class_len;
+
+  if (!g_str_has_prefix (id, wm_class))
+    return FALSE;
+
+  wm_class_len = strlen (wm_class);
+  if (id[wm_class_len] == '\0')
+    return TRUE;
+
+  return g_str_equal (id + wm_class_len, ".desktop");
+}
+
 static void
 scan_startup_wm_class_to_id (ShellAppSystem *self)
 {
   ShellAppSystemPrivate *priv = self->priv;
+  g_autoptr(GPtrArray) no_show_ids = NULL;
   const GList *l;
   GList *all;
 
   g_hash_table_remove_all (priv->startup_wm_class_to_id);
 
   all = shell_app_cache_get_all (shell_app_cache_get_default ());
+  no_show_ids = g_ptr_array_new ();
 
   for (l = all; l != NULL; l = l->next)
     {
       GAppInfo *info = l->data;
       const char *startup_wm_class, *id, *old_id;
+      gboolean should_show;
 
       id = g_app_info_get_id (info);
       startup_wm_class = g_desktop_app_info_get_startup_wm_class (G_DESKTOP_APP_INFO (info));
@@ -113,10 +135,23 @@
       if (startup_wm_class == NULL)
         continue;
 
+      should_show = g_app_info_should_show (info);
+      if (!should_show)
+        g_ptr_array_add (no_show_ids, (char *) id);
+
       /* In case multiple .desktop files set the same StartupWMClass, prefer
        * the one where ID and StartupWMClass match */
       old_id = g_hash_table_lookup (priv->startup_wm_class_to_id, startup_wm_class);
-      if (old_id == NULL || strcmp (id, startup_wm_class) == 0)
+
+      if (old_id && startup_wm_class_is_exact_match (id, startup_wm_class))
+        old_id = NULL;
+
+      /* Give priority to the desktop files that should be shown */
+      if (old_id && should_show &&
+          g_ptr_array_find_with_equal_func (no_show_ids, old_id, g_str_equal, NULL))
+        old_id = NULL;
+
+      if (!old_id)
         g_hash_table_insert (priv->startup_wm_class_to_id,
                              g_strdup (startup_wm_class), g_strdup (id));
     }
diff -Nru gnome-shell-43.4/src/shell-window-preview-layout.c gnome-shell-43.6/src/shell-window-preview-layout.c
--- gnome-shell-43.4/src/shell-window-preview-layout.c	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/src/shell-window-preview-layout.c	2023-06-03 11:50:05.000000000 +0100
@@ -394,8 +394,8 @@
     g_signal_connect (window, "position-changed",
                       G_CALLBACK (on_window_size_position_changed), self);
   window_info->window_actor_destroy_id =
-    g_signal_connect (window_actor, "destroy",
-                      G_CALLBACK (on_window_destroyed), actor);
+    g_signal_connect_swapped (window_actor, "destroy",
+                              G_CALLBACK (on_window_destroyed), actor);
   window_info->destroy_id =
     g_signal_connect (actor, "destroy",
                       G_CALLBACK (on_actor_destroyed), self);
diff -Nru gnome-shell-43.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in gnome-shell-43.6/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
--- gnome-shell-43.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in	2023-06-03 11:50:05.000000000 +0100
@@ -39,6 +39,8 @@
   </description>
 
   <releases>
+    <release version="43.6" date="2023-06-03"/>
+    <release version="43.5" date="2023-04-24"/>
     <release version="43.4" date="2023-03-19"/>
     <release version="43.3" date="2023-02-13"/>
     <release version="43.2" date="2022-12-06"/>
diff -Nru gnome-shell-43.4/subprojects/extensions-app/generate-translations.sh gnome-shell-43.6/subprojects/extensions-app/generate-translations.sh
--- gnome-shell-43.4/subprojects/extensions-app/generate-translations.sh	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/subprojects/extensions-app/generate-translations.sh	2023-06-03 11:50:05.000000000 +0100
@@ -12,7 +12,7 @@
 
 builddir=$(mktemp -d -p.)
 
-meson $builddir
+meson setup $builddir
 meson compile -C $builddir gnome-extensions-app-pot
 meson compile -C $builddir gnome-extensions-app-update-po
 
diff -Nru gnome-shell-43.4/subprojects/extensions-app/meson.build gnome-shell-43.6/subprojects/extensions-app/meson.build
--- gnome-shell-43.4/subprojects/extensions-app/meson.build	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/subprojects/extensions-app/meson.build	2023-06-03 11:50:05.000000000 +0100
@@ -1,5 +1,5 @@
 project('gnome-extensions-app',
-  version: '43.4',
+  version: '43.6',
   meson_version: '>= 0.58.0',
   license: 'GPLv2+'
 )
diff -Nru gnome-shell-43.4/subprojects/extensions-app/subprojects/shew/meson.build gnome-shell-43.6/subprojects/extensions-app/subprojects/shew/meson.build
--- gnome-shell-43.4/subprojects/extensions-app/subprojects/shew/meson.build	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/subprojects/extensions-app/subprojects/shew/meson.build	2023-06-03 11:50:05.000000000 +0100
@@ -1,5 +1,5 @@
 project('shew', 'c',
-  version: '43.4',
+  version: '43.6',
   meson_version: '>= 0.58.0',
   license: 'LGPLv2+',
 )
diff -Nru gnome-shell-43.4/subprojects/extensions-tool/generate-translations.sh gnome-shell-43.6/subprojects/extensions-tool/generate-translations.sh
--- gnome-shell-43.4/subprojects/extensions-tool/generate-translations.sh	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/subprojects/extensions-tool/generate-translations.sh	2023-06-03 11:50:05.000000000 +0100
@@ -12,7 +12,7 @@
 
 builddir=$(mktemp -d -p.)
 
-meson -Dman=False $builddir
+meson setup -Dman=False $builddir
 meson compile -C $builddir gnome-extensions-tool-pot
 meson compile -C $builddir gnome-extensions-tool-update-po
 
diff -Nru gnome-shell-43.4/subprojects/extensions-tool/meson.build gnome-shell-43.6/subprojects/extensions-tool/meson.build
--- gnome-shell-43.4/subprojects/extensions-tool/meson.build	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/subprojects/extensions-tool/meson.build	2023-06-03 11:50:05.000000000 +0100
@@ -1,5 +1,5 @@
 project('gnome-extensions-tool', 'c',
-  version: '43.4',
+  version: '43.6',
   meson_version: '>= 0.58.0',
   license: 'GPLv2+'
 )
diff -Nru gnome-shell-43.4/subprojects/shew/meson.build gnome-shell-43.6/subprojects/shew/meson.build
--- gnome-shell-43.4/subprojects/shew/meson.build	2023-03-19 20:25:01.000000000 +0000
+++ gnome-shell-43.6/subprojects/shew/meson.build	2023-06-03 11:50:05.000000000 +0100
@@ -1,5 +1,5 @@
 project('shew', 'c',
-  version: '43.4',
+  version: '43.6',
   meson_version: '>= 0.58.0',
   license: 'LGPLv2+',
 )

Reply to: