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

Bug#1107601: unblock (pre-approval): gnome-shell/48.2-3



Control: tags -1 moreinfo confirmed

On 2025-06-10 15:20:22 +0100, Simon McVittie wrote:
> Package: release.debian.org
> Severity: normal
> X-Debbugs-Cc: gnome-shell@packages.debian.org, debian-desktop@lists.debian.org, debian-gtk-gnome@lists.debian.org
> Control: affects -1 + src:gnome-shell
> User: release.debian.org@packages.debian.org
> Usertags: unblock
> 
> [ Reason ]
> - Improve how apps are split between the Dash (pinned favourite apps in
>   bottom panel) and app grid (main menu) for the set of apps that get
>   installed by default in trixie (#1099579)
> - New upstream bug fix release

Please go ahead and remove the moreinfo tag once the package is
available in unstable.

Cheers

> 
> [ Impact ]
> If not accepted:
> - various upstream bugs including #1104630 and a crash bug will continue
>   to be present
> - new installations of our default desktop environment will not have the
>   UX that we had hoped for
> 
> [ Tests ]
> A functionally equivalent version is available from experimental. It 
> works normally on my GNOME system.
> 
> Automated tests still pass. A lot of gnome-shell's functionality is not 
> feasible to test via automated testing, but there is a new automated 
> test for #1104630.
> 
> For the downstream changes for #1099579, I installed debian-installer 
> rc1 with GNOME into a virtual machine, then upgraded gnome-shell to this 
> version and emptied the user's home directory (to make sure that all 
> changes took effect). See #1099579 for screenshots and discussion.
> 
> [ Risks ]
> Key package, high visibility.
> 
> The upstream changes are narrowly-targeted bug fixes, and could easily 
> be reverted via patches if they cause a problem.
> 
> The downstream changes are also narrowly-targeted and could easily be 
> reverted if they cause a problem. The highest-risk of these changes is 
> that we moved im-config.desktop from the top level of the app grid into 
> a System folder, which could make it more difficult for new users to find.
> 
> [ 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
>       - the debdiff is testing vs experimental, what I'm proposing to
>         upload to unstable is the experimental version plus a changelog
>         entry
> 
> [ Other info ]
> We could easily subdivide these changes by topic (#1099579 vs upstream 
> bugfix release) or more narrowly (applying or reverting individual 
> changes) if the release or desktop teams would like a subset of them but 
> not the whole lot. Please let the GNOME team know what is preferred.

> debdiff *.dsc | filterdiff -p1 -x'po/*.po' -x.gitlab-ci.yml
> 
> diff -Nru gnome-shell-48.1/data/default-apps/system-folder.txt gnome-shell-48.2/data/default-apps/system-folder.txt
> --- gnome-shell-48.1/data/default-apps/system-folder.txt	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/data/default-apps/system-folder.txt	2025-06-10 14:55:10.000000000 +0100
> @@ -2,6 +2,7 @@
>  org.gnome.DejaDup.desktop                 # Backups
>  org.gnome.baobab.desktop                  # Disk Usage Analyzer
>  org.gnome.DiskUtility.desktop             # Disks
> +im-config.desktop                         # Input Method
>  org.gnome.Logs.desktop                    # Logs
>  org.freedesktop.MalcontentControl.desktop # Parental Controls
>  org.freedesktop.GnomeAbrt.desktop         # Problem Reporting
> diff -Nru gnome-shell-48.1/debian/changelog gnome-shell-48.2/debian/changelog
> --- gnome-shell-48.1/debian/changelog	2025-04-17 18:38:58.000000000 +0100
> +++ gnome-shell-48.2/debian/changelog	2025-06-10 14:16:06.000000000 +0100
> @@ -1,3 +1,66 @@
> +gnome-shell (48.2-2) experimental; urgency=medium
> +
> +  * Team upload
> +  * Summarize upstream changes in previous changelog entry
> +  * d/gnome-shell.gsettings-override: Update default pinned apps for trixie.
> +    The pinned (favourite) apps appear in the Dash (the bottom panel),
> +    instead of appearing in the main app grid.
> +    This file is a Debian-specific override for upstream's default list.
> +    The changes compared with previous versions in Debian:
> +    - Remove Rhythmbox. We no longer install a music player by default or
> +      have a recommended music player for GNOME; users are welcome to
> +      install Amberol, GNOME Music, Lollypop, Rhythmbox or any other
> +      music player of their choice.
> +    - Remove LibreOffice Writer. Pinned apps don't appear in the app grid,
> +      and it seems inconsistent to have Writer in the Dash (and not the
> +      app grid) but every other LibreOffice component such as Calc in the
> +      app grid (not the dash).
> +    - Add gnome-text-editor, matching upstream.
> +    - Add gnome-calculator, matching upstream.
> +    The changes compared with upstream:
> +    - Replace Epiphany (GNOME Web) with Firefox ESR, matching what we
> +      install by default
> +    - Replace GNOME Calendar with Evolution
> +    - Add Yelp (GNOME Help)
> +    This doesn't necessarily have any effect for existing users:
> +    if the user has pinned or unpinned an app at least once, once,
> +    then their list of pinned apps is saved and will be unaffected
> +    by this override. Please test with a completely new installation,
> +    a newly-created test user, or a user with an empty home directory.
> +    (Closes: #1099579)
> +  * d/patches: Move im-config from main app grid to the System folder,
> +    as requested by Jeremy Bícha on #1099579.
> +    A known issue is that this only has an effect for completely new
> +    installations or newly-created users: if the user has logged in at
> +    least once, then their app -> folder mapping is saved, even if they
> +    never explicitly modified it.
> +
> + -- Simon McVittie <smcv@debian.org>  Tue, 10 Jun 2025 14:16:06 +0100
> +
> +gnome-shell (48.2-1) experimental; urgency=medium
> +
> +  * New upstream bugfix release
> +    - Track screen-time for the Wellbeing feature correctly across
> +      suspend/resume, not counting time spent suspended as screen time
> +      (Closes: #1104630; gnome-shell!3707 upstream)
> +    - Check for surrounding text before enabling that capability
> +      (mutter#3102, gnome-shell!3666 upstream)
> +    - Fix a crash that can occur during startup when an extension is
> +      updated
> +      (gnome-shell#8417 upstream)
> +    - Fix a regression that broke the ability to run commands in
> +      terminals via: Alt+F2, <command>, Ctrl+Enter
> +      (gnome-shell#7516 upstream)
> +    - Fix VPN toggle in system menu not working when clicking the switch
> +      (gnome-shell#8204 upstream)
> +    - Always close folders when clicking outside them
> +      (gnome-shell#7541 upstream)
> +    - Add comments to give context for translators
> +      (gnome-shell!3716 upstream)
> +    - Translation updates: ro
> +
> + -- Jeremy Bícha <jbicha@ubuntu.com>  Fri, 06 Jun 2025 13:32:38 -0400
> +
>  gnome-shell (48.1-1) unstable; urgency=medium
>  
>    * New upstream release
> diff -Nru gnome-shell-48.1/debian/.gitignore gnome-shell-48.2/debian/.gitignore
> --- gnome-shell-48.1/debian/.gitignore	1970-01-01 01:00:00.000000000 +0100
> +++ gnome-shell-48.2/debian/.gitignore	2025-06-10 14:16:06.000000000 +0100
> @@ -0,0 +1,11 @@
> +!*.patch
> +/*.debhelper
> +/*.debhelper.log
> +/*.substvars
> +/.debhelper/
> +/debhelper-build-stamp
> +/files
> +/gnome-shell-common/
> +/gnome-shell/
> +/home/
> +/tmp/
> diff -Nru gnome-shell-48.1/debian/gnome-shell.gsettings-override gnome-shell-48.2/debian/gnome-shell.gsettings-override
> --- gnome-shell-48.1/debian/gnome-shell.gsettings-override	2025-04-17 18:38:58.000000000 +0100
> +++ gnome-shell-48.2/debian/gnome-shell.gsettings-override	2025-06-10 14:16:06.000000000 +0100
> @@ -1,2 +1,2 @@
>  [org.gnome.shell]
> -favorite-apps=[ 'firefox-esr.desktop', 'org.gnome.Evolution.desktop', 'rhythmbox.desktop', 'libreoffice-writer.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'yelp.desktop' ]
> +favorite-apps=[ 'firefox-esr.desktop', 'org.gnome.Evolution.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop', 'org.gnome.Calculator.desktop', 'yelp.desktop' ]
> diff -Nru gnome-shell-48.1/debian/patches/debian/data-Add-im-config.desktop-to-System-folder.patch gnome-shell-48.2/debian/patches/debian/data-Add-im-config.desktop-to-System-folder.patch
> --- gnome-shell-48.1/debian/patches/debian/data-Add-im-config.desktop-to-System-folder.patch	1970-01-01 01:00:00.000000000 +0100
> +++ gnome-shell-48.2/debian/patches/debian/data-Add-im-config.desktop-to-System-folder.patch	2025-06-10 14:16:06.000000000 +0100
> @@ -0,0 +1,29 @@
> +From: Simon McVittie <smcv@debian.org>
> +Date: Tue, 10 Jun 2025 11:42:17 +0100
> +Subject: data: Add im-config.desktop to System folder
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset="utf-8"
> +Content-Transfer-Encoding: 8bit
> +
> +Debian installs this by default, but most users will only need to run
> +it once, or perhaps not at all.
> +
> +Thanks: Jeremy Bícha
> +Helps: #1099579
> +Forwarded: not-needed, Debian-specific
> +---
> + data/default-apps/system-folder.txt | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/data/default-apps/system-folder.txt b/data/default-apps/system-folder.txt
> +index 2cda554..62cf6ba 100644
> +--- a/data/default-apps/system-folder.txt
> ++++ b/data/default-apps/system-folder.txt
> +@@ -2,6 +2,7 @@ nm-connection-editor.desktop              # Advanced Network Configuration
> + org.gnome.DejaDup.desktop                 # Backups
> + org.gnome.baobab.desktop                  # Disk Usage Analyzer
> + org.gnome.DiskUtility.desktop             # Disks
> ++im-config.desktop                         # Input Method
> + org.gnome.Logs.desktop                    # Logs
> + org.freedesktop.MalcontentControl.desktop # Parental Controls
> + org.freedesktop.GnomeAbrt.desktop         # Problem Reporting
> diff -Nru gnome-shell-48.1/debian/patches/series gnome-shell-48.2/debian/patches/series
> --- gnome-shell-48.1/debian/patches/series	2025-04-17 18:38:58.000000000 +0100
> +++ gnome-shell-48.2/debian/patches/series	2025-06-10 14:16:06.000000000 +0100
> @@ -10,3 +10,4 @@
>  tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch
>  shell-app-Warn-instead-of-crashing-if-disposed-before-sta.patch
>  st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch
> +debian/data-Add-im-config.desktop-to-System-folder.patch
> diff -Nru gnome-shell-48.1/js/misc/breakManager.js gnome-shell-48.2/js/misc/breakManager.js
> --- gnome-shell-48.1/js/misc/breakManager.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/misc/breakManager.js	2025-05-25 16:24:49.000000000 +0100
> @@ -1262,8 +1262,8 @@
>              } else if (this._previousState === BreakState.IN_BREAK) {
>                  const durationSecs = this._manager.getDurationForBreakType(nextBreakType);
>                  const [countdownText, countdownValue, updateTimeoutSeconds] = this._formatTimeSpan(durationSecs - breakDueAgo);
> +                /* Translators: %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour” */
>                  const bodyText = Gettext.ngettext(
> -                    /* %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour” */
>                      'There is %s remaining in your break',
>                      'There are %s remaining in your break',
>                      countdownValue
> @@ -1347,6 +1347,7 @@
>              return;
>  
>          if (allowDelay) {
> +            /* Translators: As in "Delay the break" */
>              this._delayAction = this.addAction(_('Delay'), this._onDelayAction.bind(this));
>          } else {
>              this.removeAction(this._delayAction);
> @@ -1368,6 +1369,7 @@
>              return;
>  
>          if (allowSkip) {
> +            /* Translators: As in "Skip the break" */
>              this._skipAction = this.addAction(_('Skip'), this._onSkipAction.bind(this));
>          } else {
>              this.removeAction(this._skipAction);
> @@ -1389,6 +1391,7 @@
>              return;
>  
>          if (allowTake) {
> +            /* Translators: As in "Take the break" */
>              this._takeAction = this.addAction(_('Take'), this._onTakeAction.bind(this));
>          } else {
>              this.removeAction(this._takeAction);
> diff -Nru gnome-shell-48.1/js/misc/fileUtils.js gnome-shell-48.2/js/misc/fileUtils.js
> --- gnome-shell-48.1/js/misc/fileUtils.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/misc/fileUtils.js	2025-05-25 16:24:49.000000000 +0100
> @@ -52,7 +52,7 @@
>      while ((info = children.next_file(null)) != null) {
>          let type = info.get_file_type();
>          let child = dir.get_child(info.get_name());
> -        if (type === Gio.FileType.REGULAR)
> +        if (type === Gio.FileType.REGULAR || type === Gio.FileType.SYMBOLIC_LINK)
>              child.delete(null);
>          else if (type === Gio.FileType.DIRECTORY)
>              recursivelyDeleteDir(child, true);
> @@ -78,7 +78,7 @@
>          let type = info.get_file_type();
>          let srcChild = srcDir.get_child(info.get_name());
>          let destChild = destDir.get_child(info.get_name());
> -        if (type === Gio.FileType.REGULAR)
> +        if (type === Gio.FileType.REGULAR || type === Gio.FileType.SYMBOLIC_LINK)
>              srcChild.move(destChild, Gio.FileCopyFlags.NONE, null, null);
>          else if (type === Gio.FileType.DIRECTORY)
>              recursivelyMoveDir(srcChild, destChild);
> diff -Nru gnome-shell-48.1/js/misc/inputMethod.js gnome-shell-48.2/js/misc/inputMethod.js
> --- gnome-shell-48.1/js/misc/inputMethod.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/misc/inputMethod.js	2025-05-25 16:24:49.000000000 +0100
> @@ -31,6 +31,9 @@
>          this._preeditAnchor = 0;
>          this._preeditVisible = false;
>          this._hidePanelId = 0;
> +        this._surroundingText = null;
> +        this._surroundingTextCursor = null;
> +        this._surroundingTextAnchor = null;
>          this._ibus = IBus.Bus.new_async();
>          this._ibus.connect('connected', this._onConnected.bind(this));
>          this._ibus.connect('disconnected', this._clear.bind(this));
> @@ -50,7 +53,10 @@
>      }
>  
>      _updateCapabilities() {
> -        let caps = IBus.Capabilite.PREEDIT_TEXT | IBus.Capabilite.FOCUS | IBus.Capabilite.SURROUNDING_TEXT;
> +        let caps = IBus.Capabilite.PREEDIT_TEXT | IBus.Capabilite.FOCUS;
> +
> +        if (this._surroundingText !== null)
> +            caps |= IBus.Capabilite.SURROUNDING_TEXT;
>  
>          if (Main.keyboard.visible)
>              caps |= IBus.Capabilite.OSK;
> @@ -124,6 +130,12 @@
>      }
>  
>      _onDeleteSurroundingText(_context, offset, nchars) {
> +        if (this._surroundingText === null) {
> +            log('input-method engines should not call ' +
> +                'the delete-surrounding-text API in case ' +
> +                'the input context has no SURROUNDING_TEXT capability.');
> +            return;
> +        }
>          try {
>              this.delete_surrounding(offset, nchars);
>          } catch {
> @@ -241,6 +253,13 @@
>      }
>  
>      vfunc_set_surrounding(text, cursor, anchor) {
> +        // If the previous input context supports the surrounding-text feature.
> +        const prevHasSurrounding = this._surroundingText !== null;
> +        // If the current input context supports the surrounding-text feature.
> +        const nowHasSurrounding = text !== null;
> +        // If the SURROUNDING_TEXT capability is changed.
> +        const updateCapabilities = prevHasSurrounding !== nowHasSurrounding;
> +
>          this._surroundingText = text;
>          this._surroundingTextCursor = cursor;
>          this._surroundingTextAnchor = anchor;
> @@ -250,6 +269,11 @@
>              return;
>  
>          let ibusText = IBus.Text.new_from_string(text);
> +
> +        if (updateCapabilities)
> +            this._updateCapabilities();
> +
> +        // Call context.set_surrounding_text() after context.set_capabilities().
>          this._context.set_surrounding_text(ibusText, cursor, anchor);
>      }
>  
> diff -Nru gnome-shell-48.1/js/misc/timeLimitsManager.js gnome-shell-48.2/js/misc/timeLimitsManager.js
> --- gnome-shell-48.1/js/misc/timeLimitsManager.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/misc/timeLimitsManager.js	2025-05-25 16:24:49.000000000 +0100
> @@ -175,6 +175,7 @@
>          this._timerId = 0;
>          this._timeChangeId = 0;
>          this._clockOffsetSecs = 0;
> +        this._ignoreClockOffsetChanges = false;
>  
>          // Start tracking timings
>          this._updateSettings();
> @@ -231,6 +232,9 @@
>          this._clockOffsetSecs = this._getClockOffset();
>          try {
>              this._timeChangeId = this._clock.timeChangeNotify(() => {
> +                if (this._ignoreClockOffsetChanges)
> +                    return GLib.SOURCE_CONTINUE;
> +
>                  const newClockOffsetSecs = this._getClockOffset();
>                  const oldClockOffsetSecs = this._clockOffsetSecs;
>  
> @@ -348,9 +352,14 @@
>      }
>  
>      async _onPrepareForSleep(preparingForSleep) {
> -        // Just come back from sleep, so take another inhibitor.
> -        if (!preparingForSleep)
> +        // Just come back from sleep, so take another inhibitor. Also update
> +        // the clock offset to account for the monotonic clock not advancing
> +        // during sleep.
> +        if (!preparingForSleep) {
>              this._ensureInhibitor();
> +            this._clockOffsetSecs = this._getClockOffset();
> +            this._ignoreClockOffsetChanges = false;
> +        }
>  
>          try {
>              await this._updateUserState(true);
> @@ -358,9 +367,14 @@
>              console.warn(`Failed to update user state: ${e.message}`);
>          }
>  
> -        // Release the inhibitor if we’re preparing to sleep.
> -        if (preparingForSleep)
> +        // Release the inhibitor if we’re preparing to sleep. Also avoid
> +        // adjusting the time due to offset changes caused by the monotonic
> +        // clock not advancing during sleep until we have updated the current
> +        // offset to account for this.
> +        if (preparingForSleep) {
> +            this._ignoreClockOffsetChanges = true;
>              this._releaseInhibitor();
> +        }
>      }
>  
>      /** Shut down the state machine and write out the state file. */
> diff -Nru gnome-shell-48.1/js/ui/appDisplay.js gnome-shell-48.2/js/ui/appDisplay.js
> --- gnome-shell-48.1/js/ui/appDisplay.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/ui/appDisplay.js	2025-05-25 16:24:49.000000000 +0100
> @@ -2500,7 +2500,7 @@
>              const actor =
>                  global.stage.get_actor_at_pos(Clutter.PickMode.ALL, x, y);
>  
> -            if (actor === this)
> +            if (!this._viewBox.contains(actor))
>                  this.popdown();
>          });
>          this.add_action(clickAction);
> diff -Nru gnome-shell-48.1/js/ui/extensionSystem.js gnome-shell-48.2/js/ui/extensionSystem.js
> --- gnome-shell-48.1/js/ui/extensionSystem.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/ui/extensionSystem.js	2025-05-25 16:24:49.000000000 +0100
> @@ -669,8 +669,12 @@
>                  FileUtils.recursivelyMoveDir(dir, extensionDir);
>              } catch {
>                  log(`Failed to install extension updates for ${uuid}`);
> -            } finally {
> +            }
> +
> +            try {
>                  FileUtils.recursivelyDeleteDir(dir, true);
> +            } catch (e) {
> +                console.error(`Failed to delete extension update: ${e.message}`);
>              }
>          }
>      }
> diff -Nru gnome-shell-48.1/js/ui/runDialog.js gnome-shell-48.2/js/ui/runDialog.js
> --- gnome-shell-48.1/js/ui/runDialog.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/ui/runDialog.js	2025-05-25 16:24:49.000000000 +0100
> @@ -70,6 +70,7 @@
>          ShellEntry.addContextMenu(entry);
>  
>          this._entryText = entry.clutter_text;
> +        this._entryText.activatable = false;
>          content.add_child(entry);
>          this.setInitialKeyFocus(this._entryText);
>  
> @@ -90,14 +91,6 @@
>              gsettingsKey: HISTORY_KEY,
>              entry: this._entryText,
>          });
> -        this._entryText.connect('activate', o => {
> -            this.popModal();
> -            this._run(o.get_text(),
> -                Clutter.get_current_event().get_state() & Clutter.ModifierType.CONTROL_MASK);
> -            if (!this._commandError ||
> -                !this.pushModal())
> -                this.close();
> -        });
>          this._entryText.connect('key-press-event', (o, e) => {
>              let symbol = e.get_key_symbol();
>              if (symbol === Clutter.KEY_Tab) {
> @@ -113,6 +106,14 @@
>                      o.set_cursor_position(text.length + postfix.length);
>                  }
>                  return Clutter.EVENT_STOP;
> +            } else if ([Clutter.KEY_Return, Clutter.KEY_KP_Enter, Clutter.KEY_ISO_Enter].includes(symbol)) {
> +                this.popModal();
> +                this._run(o.get_text(),
> +                    Clutter.get_current_event().get_state() & Clutter.ModifierType.CONTROL_MASK);
> +                if (!this._commandError ||
> +                    !this.pushModal())
> +                    this.close();
> +                return Clutter.EVENT_STOP;
>              }
>              return Clutter.EVENT_PROPAGATE;
>          });
> diff -Nru gnome-shell-48.1/js/ui/status/network.js gnome-shell-48.2/js/ui/status/network.js
> --- gnome-shell-48.1/js/ui/status/network.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/js/ui/status/network.js	2025-05-25 16:24:49.000000000 +0100
> @@ -1323,6 +1323,16 @@
>          this.bind_property('is-active',
>              this._switch, 'state',
>              GObject.BindingFlags.SYNC_CREATE);
> +
> +        // Switch handle is reactive, so events don't propagate to the item;
> +        // activate it manually in that case
> +        this._switch.connect('notify::state', () => {
> +            if (this.is_active === this._switch.state)
> +                return;
> +
> +            this.activate();
> +        });
> +
>          this.bind_property('name',
>              this._label, 'text',
>              GObject.BindingFlags.SYNC_CREATE);
> diff -Nru gnome-shell-48.1/meson.build gnome-shell-48.2/meson.build
> --- gnome-shell-48.1/meson.build	2025-06-10 14:55:10.000000000 +0100
> +++ gnome-shell-48.2/meson.build	2025-06-10 14:55:10.000000000 +0100
> @@ -1,5 +1,5 @@
>  project('gnome-shell', 'c',
> -  version: '48.1',
> +  version: '48.2',
>    meson_version: '>= 1.1.0',
>    license: 'GPL-2.0-or-later',
>  )
> diff -Nru gnome-shell-48.1/NEWS gnome-shell-48.2/NEWS
> --- gnome-shell-48.1/NEWS	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/NEWS	2025-05-25 16:24:49.000000000 +0100
> @@ -1,3 +1,19 @@
> +48.2
> +====
> +* Only enable surrounding-text IM capability when needed [Takao; !3666]
> +* Fix launching command from terminal in run dialog [Balló; !3683]
> +* Ignore offset changes caused by suspend for screen time [Sebastian; !3707]
> +* Fix app folders sometimes not closing after outside clicks [Damien; !3713]
> +* Fixed crash [Florian; !3721]
> +* Misc. bug fixes and cleanups [Philipp, Alynx; !3716, !3711]
> +
> +Contributors:
> +  Takao Fujiwara, Balló György, Sebastian Keller, Philipp Kiemle,
> +  Florian Müllner, Damien Tournoud, Alynx Zhou
> +
> +Translators:
> +  Antonio Marin [ro]
> +
>  48.1
>  ====
>  * Fix glitch in sliders when close to maximum [Sebastian; !3648]
> diff -Nru gnome-shell-48.1/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in gnome-shell-48.2/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
> --- gnome-shell-48.1/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in	2025-05-25 16:24:49.000000000 +0100
> @@ -55,6 +55,7 @@
>    </description>
>  
>    <releases>
> +    <release version="48.2" date="2025-05-24"/>
>      <release version="48.1" date="2025-04-12"/>
>      <release version="48.0" date="2025-03-16">
>        <description>
> diff -Nru gnome-shell-48.1/subprojects/extensions-app/meson.build gnome-shell-48.2/subprojects/extensions-app/meson.build
> --- gnome-shell-48.1/subprojects/extensions-app/meson.build	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/subprojects/extensions-app/meson.build	2025-05-25 16:24:49.000000000 +0100
> @@ -1,5 +1,5 @@
>  project('gnome-extensions-app',
> -  version: '48.1',
> +  version: '48.2',
>    meson_version: '>= 0.58.0',
>    license: 'GPL-2.0-or-later',
>  )
> diff -Nru gnome-shell-48.1/subprojects/extensions-app/subprojects/shew/meson.build gnome-shell-48.2/subprojects/extensions-app/subprojects/shew/meson.build
> --- gnome-shell-48.1/subprojects/extensions-app/subprojects/shew/meson.build	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/subprojects/extensions-app/subprojects/shew/meson.build	2025-05-25 16:24:49.000000000 +0100
> @@ -1,5 +1,5 @@
>  project('shew', 'c',
> -  version: '48.1',
> +  version: '48.2',
>    meson_version: '>= 0.58.0',
>    license: 'LGPL-2.1-or-later',
>  )
> diff -Nru gnome-shell-48.1/subprojects/extensions-tool/meson.build gnome-shell-48.2/subprojects/extensions-tool/meson.build
> --- gnome-shell-48.1/subprojects/extensions-tool/meson.build	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/subprojects/extensions-tool/meson.build	2025-05-25 16:24:49.000000000 +0100
> @@ -1,5 +1,5 @@
>  project('gnome-extensions-tool', 'c',
> -  version: '48.1',
> +  version: '48.2',
>    meson_version: '>= 0.58.0',
>    license: 'GPL-2.0-or-later',
>  )
> diff -Nru gnome-shell-48.1/subprojects/shew/meson.build gnome-shell-48.2/subprojects/shew/meson.build
> --- gnome-shell-48.1/subprojects/shew/meson.build	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/subprojects/shew/meson.build	2025-05-25 16:24:49.000000000 +0100
> @@ -1,5 +1,5 @@
>  project('shew', 'c',
> -  version: '48.1',
> +  version: '48.2',
>    meson_version: '>= 0.58.0',
>    license: 'LGPL-2.1-or-later',
>  )
> diff -Nru gnome-shell-48.1/tests/unit/timeLimitsManager.js gnome-shell-48.2/tests/unit/timeLimitsManager.js
> --- gnome-shell-48.1/tests/unit/timeLimitsManager.js	2025-04-13 23:40:21.000000000 +0100
> +++ gnome-shell-48.2/tests/unit/timeLimitsManager.js	2025-05-25 16:24:49.000000000 +0100
> @@ -283,6 +283,12 @@
>              newPreparingForSleepState: true,
>          });
>          this._insertEvent({
> +            type: 'time-change',
> +            time: TestHarness.timeStrToSecs(timeStr) + 1,
> +            newTime: TestHarness.timeStrToSecs(timeStr) + duration - 1,
> +            callback: null,
> +        });
> +        this._insertEvent({
>              type: 'preparing-for-sleep-state-change',
>              time: TestHarness.timeStrToSecs(timeStr) + duration,
>              newPreparingForSleepState: false,
> @@ -1309,6 +1315,19 @@
>              'dailyLimitTime': TestHarness.timeStrToSecs('2024-06-01T17:00:00Z'),
>          });
>  
> +        // Ensure the suspend event caused a state change to inactive and its
> +        // time was not adjusted due to offset changes on resume
> +        harness.addAssertionEvent('2024-06-01T15:00:02Z', () => {
> +            const [, historyContents] = harness.mockHistoryFile.load_contents(null);
> +            expect(JSON.parse(new TextDecoder().decode(historyContents)))
> +                .withContext('History file contents')
> +                .toContain({
> +                    'oldState': UserState.ACTIVE,
> +                    'newState': UserState.INACTIVE,
> +                    'wallTimeSecs': TestHarness.timeStrToSecs('2024-06-01T12:00:01Z'),
> +                });
> +        });
> +
>          harness.shutdownManager('2024-06-01T15:20:00Z', timeLimitsManager);
>  
>          harness.run();


-- 
Sebastian Ramacher


Reply to: