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: [email protected], > [email protected], [email protected] > Control: affects -1 + src:gnome-shell > User: [email protected] > 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> > +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

