--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: bullseye-pu: package gnome-shell/3.38.6-1~deb11u1
- From: Simon McVittie <smcv@debian.org>
- Date: Sat, 4 Sep 2021 11:47:10 +0100
- Message-id: <YTNOri71Y01oFG1q@momentum.pseudorandom.co.uk>
Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: debian-gtk-gnome@lists.debian.org
I updated mutter and gnome-shell along the 3.38.x branch in unstable
while we're waiting for the gnome-shell 40 transition to be ready,
and I think it could make sense to backport them to bullseye and take
the benefit of upstream's stable-branch maintenance.
[ Reason ]
New upstream bugfix release backported from unstable.
[ Impact ]
If not updated, assorted bugs fixed on upstream's 3.38.x stable branch
remain unfixed, including several crashes:
- gdm user interface fixes
+ Don't limit timed-login progress bar to the width of the username
if it's short
+ Make sure authentication cancellation is handled correctly
+ Improve fingerprint authentication handling
+ Don't retry authentication if services are unavailable
- Fix word suggestions in on-screen keyboard
- Fix double-free crash in calendar on non-x86 (LP: #1915929)
- Fix input-method popup visibility over fullscreen applications
- Fix a crash if an app moves between monitors during startup
- Fix D-Bus-initiated app focus changes
- Make sure to return a value from D-Bus methods so callers won't
time out (apparently this fixes #992980)
- Fix runtime warnings related to magnifier and shutdown
- Make sure power menu stays in sync with upower
[ Tests ]
autopkgtests pass, routine use of GNOME on a desktop seems fine, and the
version it's based on has been in unstable for a while with no new bug
reports.
[ Risks ]
It's a key package and high-visibility, but upstream's stable branches
tend to be good about sticking to bugfix-only.
The changes in js/ui/status/power.js are noisier than I'd like (they
include reformatting, unfortunately) but seem harmless.
[ 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 (old)stable
- I have filtered this to exclude the content of translation updates
[x] the issue is verified as fixed in unstable
[ Changes ]
* New upstream release, with:
+ Bug fixes as described in "Impact"
+ Forward-compatibility fixes that are unnecessary but harmless
for bullseye:
- Fix freeze after closing some modal dialogs with gjs 1.68.x
(LP: #1918666)
- Improve OSK compatibility with gjs 1.68.x (LP: #1918738)
- Use mallinfo2() instead of deprecated mallinfo() if glibc is new
enough
[ Other info ]
I have also proposed a mutter update. These have only been tested
together, although they should be separable.
diffstat for gnome-shell-3.38.4 gnome-shell-3.38.6
NEWS | 30 +
config.h.meson | 3
debian/changelog | 34 +
debian/control | 2
debian/control.in | 2
debian/gbp.conf | 2
js/gdm/authPrompt.js | 7
js/gdm/loginDialog.js | 1
js/gdm/util.js | 47 ++
js/ui/audioDeviceSelection.js | 14
js/ui/boxpointer.js | 9
js/ui/dialog.js | 2
js/ui/iconGrid.js | 4
js/ui/keyboard.js | 4
js/ui/magnifier.js | 32 +
js/ui/shellDBus.js | 10
js/ui/status/network.js | 2
js/ui/status/power.js | 72 ++-
meson.build | 3
po/pt.po | 119 +++--
po/tr.po | 199 +++++-----
src/calendar-server/gnome-shell-calendar-server.c | 3
src/main.c | 10
src/shell-app.c | 6
src/shell-global.c | 5
subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in | 2
subprojects/extensions-app/meson.build | 2
subprojects/extensions-app/subprojects/shew/meson.build | 2
subprojects/extensions-tool/meson.build | 2
subprojects/shew/meson.build | 2
30 files changed, 391 insertions(+), 241 deletions(-)
diff -Nru gnome-shell-3.38.4/config.h.meson gnome-shell-3.38.6/config.h.meson
--- gnome-shell-3.38.4/config.h.meson 2021-03-15 21:28:44.984285000 +0000
+++ gnome-shell-3.38.6/config.h.meson 2021-08-18 00:33:58.054246000 +0100
@@ -13,6 +13,9 @@
/* Define to 1 if you have the `mallinfo' function. */
#mesondefine HAVE_MALLINFO
+/* Define to 1 if you have the `mallinfo2' function. */
+#mesondefine HAVE_MALLINFO2
+
/* Define to 1 fi you have the <sys/resource.h> header file. */
#mesondefine HAVE_SYS_RESOURCE_H
diff -Nru gnome-shell-3.38.4/debian/changelog gnome-shell-3.38.6/debian/changelog
--- gnome-shell-3.38.4/debian/changelog 2021-03-17 09:52:47.000000000 +0000
+++ gnome-shell-3.38.6/debian/changelog 2021-09-01 21:18:10.000000000 +0100
@@ -1,3 +1,37 @@
+gnome-shell (3.38.6-1~deb11u1) bullseye; urgency=medium
+
+ * Rebuild for bullseye
+
+ -- Simon McVittie <smcv@debian.org> Wed, 01 Sep 2021 21:18:10 +0100
+
+gnome-shell (3.38.6-1) unstable; urgency=medium
+
+ * Team upload
+ * New upstream release
+ - gdm user interface fixes
+ + Don't limit timed-login progress bar to the width of the username
+ if it's short
+ + Make sure authentication cancellation is handled correctly
+ + Improve fingerprint authentication handling
+ + Don't retry authentication if services are unavailable
+ - Fix word suggestions in on-screen keyboard
+ - Fix freeze after closing some modal dialogs with gjs 1.68.x
+ (LP: #1918666)
+ - Fix double-free crash in calendar on non-x86 (LP: #1915929)
+ - Improve OSK compatibility with gjs 1.68.x (LP: #1918738)
+ - Fix input-method popup visibility over fullscreen applications
+ - Fix a crash if an app moves between monitors during startup
+ - Fix D-Bus-initiated app focus changes
+ - Make sure to return a value from D-Bus methods so callers won't
+ time out
+ - Fix runtime warnings related to magnifier and shutdown
+ - Make sure power menu stays in sync with upower
+ - Use mallinfo2() instead of deprecated mallinfo() if glibc is new
+ enough (not applicable in Debian yet)
+ * d/gbp.conf, d/control.in: Update VCS details for debian/unstable branch
+
+ -- Simon McVittie <smcv@debian.org> Thu, 26 Aug 2021 08:50:50 +0100
+
gnome-shell (3.38.4-1) unstable; urgency=medium
* Team upload
diff -Nru gnome-shell-3.38.4/debian/control gnome-shell-3.38.6/debian/control
--- gnome-shell-3.38.4/debian/control 2021-03-17 09:52:47.000000000 +0000
+++ gnome-shell-3.38.6/debian/control 2021-09-01 21:18:10.000000000 +0100
@@ -68,7 +68,7 @@
Rules-Requires-Root: no
Standards-Version: 4.5.1
Homepage: https://wiki.gnome.org/Projects/GnomeShell
-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git
+Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git -b debian/unstable
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell
Package: gnome-shell
diff -Nru gnome-shell-3.38.4/debian/control.in gnome-shell-3.38.6/debian/control.in
--- gnome-shell-3.38.4/debian/control.in 2021-03-17 09:52:47.000000000 +0000
+++ gnome-shell-3.38.6/debian/control.in 2021-09-01 21:18:10.000000000 +0100
@@ -64,7 +64,7 @@
Rules-Requires-Root: no
Standards-Version: 4.5.1
Homepage: https://wiki.gnome.org/Projects/GnomeShell
-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git
+Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git -b debian/unstable
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell
Package: gnome-shell
diff -Nru gnome-shell-3.38.4/debian/gbp.conf gnome-shell-3.38.6/debian/gbp.conf
--- gnome-shell-3.38.4/debian/gbp.conf 2021-03-17 09:52:47.000000000 +0000
+++ gnome-shell-3.38.6/debian/gbp.conf 2021-09-01 21:18:10.000000000 +0100
@@ -1,6 +1,6 @@
[DEFAULT]
pristine-tar = True
-debian-branch = debian/master
+debian-branch = debian/bullseye
upstream-branch = upstream/3.38.x
upstream-vcs-tag = %(version)s
diff -Nru gnome-shell-3.38.4/js/gdm/authPrompt.js gnome-shell-3.38.6/js/gdm/authPrompt.js
--- gnome-shell-3.38.4/js/gdm/authPrompt.js 2021-03-15 21:28:45.003284500 +0000
+++ gnome-shell-3.38.6/js/gdm/authPrompt.js 2021-08-18 00:33:58.075246000 +0100
@@ -29,6 +29,7 @@
VERIFYING: 1,
VERIFICATION_FAILED: 2,
VERIFICATION_SUCCEEDED: 3,
+ VERIFICATION_CANCELLED: 4,
};
var BeginRequestType = {
@@ -479,12 +480,16 @@
if (oldStatus == AuthPromptStatus.VERIFICATION_FAILED)
this.emit('failed');
+ else if (oldStatus === AuthPromptStatus.VERIFICATION_CANCELLED)
+ this.emit('cancelled');
let beginRequestType;
if (this._mode == AuthPromptMode.UNLOCK_ONLY) {
// The user is constant at the unlock screen, so it will immediately
// respond to the request with the username
+ if (oldStatus === AuthPromptStatus.VERIFICATION_CANCELLED)
+ return;
beginRequestType = BeginRequestType.PROVIDE_USERNAME;
} else if (this._userVerifier.serviceIsForeground(OVirt.SERVICE_NAME) ||
this._userVerifier.serviceIsForeground(Vmware.SERVICE_NAME) ||
@@ -540,7 +545,7 @@
if (this.verificationStatus == AuthPromptStatus.VERIFICATION_SUCCEEDED)
return;
+ this.verificationStatus = AuthPromptStatus.VERIFICATION_CANCELLED;
this.reset();
- this.emit('cancelled');
}
});
diff -Nru gnome-shell-3.38.4/js/gdm/loginDialog.js gnome-shell-3.38.6/js/gdm/loginDialog.js
--- gnome-shell-3.38.4/js/gdm/loginDialog.js 2021-03-15 21:28:45.004284400 +0000
+++ gnome-shell-3.38.6/js/gdm/loginDialog.js 2021-08-18 00:33:58.075246000 +0100
@@ -42,7 +42,6 @@
_init(user) {
let layout = new St.BoxLayout({
vertical: true,
- x_align: Clutter.ActorAlign.START,
});
super._init({
style_class: 'login-dialog-user-list-item',
diff -Nru gnome-shell-3.38.4/js/gdm/util.js gnome-shell-3.38.6/js/gdm/util.js
--- gnome-shell-3.38.4/js/gdm/util.js 2021-03-15 21:28:45.004284400 +0000
+++ gnome-shell-3.38.6/js/gdm/util.js 2021-08-18 00:33:58.076246000 +0100
@@ -159,6 +159,7 @@
this.reauthenticating = false;
this._failCounter = 0;
+ this._unavailableServices = new Set();
this._credentialManagers = {};
this._credentialManagers[OVirt.SERVICE_NAME] = OVirt.getOVirtCredentialsManager();
@@ -220,7 +221,7 @@
}
destroy() {
- this.clear();
+ this.cancel();
this._settings.run_dispose();
this._settings = null;
@@ -240,9 +241,11 @@
if (!this.hasPendingMessages) {
this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null);
} else {
+ const cancellable = this._cancellable;
let signalId = this.connect('no-more-messages', () => {
this.disconnect(signalId);
- this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null);
+ if (!cancellable.is_cancelled())
+ this._userVerifier.call_answer_query(serviceName, answer, cancellable, null);
});
}
}
@@ -406,6 +409,7 @@
this._userVerifier.connect('info-query', this._onInfoQuery.bind(this));
this._userVerifier.connect('secret-info-query', this._onSecretInfoQuery.bind(this));
this._userVerifier.connect('conversation-stopped', this._onConversationStopped.bind(this));
+ this._userVerifier.connect('service-unavailable', this._onServiceUnavailable.bind(this));
this._userVerifier.connect('reset', this._onReset.bind(this));
this._userVerifier.connect('verification-complete', this._onVerificationComplete.bind(this));
}
@@ -425,6 +429,11 @@
return serviceName == this._defaultService;
}
+ serviceIsFingerprint(serviceName) {
+ return serviceName === FINGERPRINT_SERVICE_NAME &&
+ this._haveFingerprintReader;
+ }
+
_updateDefaultService() {
if (this._settings.get_boolean(PASSWORD_AUTHENTICATION_KEY))
this._defaultService = PASSWORD_SERVICE_NAME;
@@ -452,6 +461,11 @@
} catch (e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
return;
+ if (!this.serviceIsForeground(serviceName)) {
+ logError(e, 'Failed to start %s for %s'.format(serviceName, this._userName));
+ this._hold.release();
+ return;
+ }
this._reportInitError(this._userName
? 'Failed to start verification for user'
: 'Failed to start verification', e);
@@ -470,8 +484,7 @@
_onInfo(client, serviceName, info) {
if (this.serviceIsForeground(serviceName)) {
this._queueMessage(info, MessageType.INFO);
- } else if (serviceName == FINGERPRINT_SERVICE_NAME &&
- this._haveFingerprintReader) {
+ } else if (this.serviceIsFingerprint(serviceName)) {
// We don't show fingerprint messages directly since it's
// not the main auth service. Instead we use the messages
// as a cue to display our own message.
@@ -483,7 +496,9 @@
}
_onProblem(client, serviceName, problem) {
- if (!this.serviceIsForeground(serviceName))
+ const isFingerprint = this.serviceIsFingerprint(serviceName);
+
+ if (!this.serviceIsForeground(serviceName) && !isFingerprint)
return;
this._queueMessage(problem, MessageType.ERROR);
@@ -515,6 +530,7 @@
_onReset() {
// Clear previous attempts to authenticate
this._failCounter = 0;
+ this._unavailableServices.clear();
this._updateDefaultService();
this.emit('reset');
@@ -530,6 +546,7 @@
}
_retry() {
+ this.cancel();
this.begin(this._userName, new Batch.Hold());
}
@@ -548,9 +565,10 @@
if (!this.hasPendingMessages) {
this._retry();
} else {
+ const cancellable = this._cancellable;
let signalId = this.connect('no-more-messages', () => {
this.disconnect(signalId);
- if (this._cancellable && !this._cancellable.is_cancelled())
+ if (!cancellable.is_cancelled())
this._retry();
});
}
@@ -559,9 +577,11 @@
if (!this.hasPendingMessages) {
this._cancelAndReset();
} else {
+ const cancellable = this._cancellable;
let signalId = this.connect('no-more-messages', () => {
this.disconnect(signalId);
- this._cancelAndReset();
+ if (!cancellable.is_cancelled())
+ this._cancelAndReset();
});
}
}
@@ -569,6 +589,16 @@
this.emit('verification-failed', canRetry);
}
+ _onServiceUnavailable(_client, serviceName, errorMessage) {
+ this._unavailableServices.add(serviceName);
+
+ if (!errorMessage)
+ return;
+
+ if (this.serviceIsForeground(serviceName) || this.serviceIsFingerprint(serviceName))
+ this._queueMessage(errorMessage, MessageType.ERROR);
+ }
+
_onConversationStopped(client, serviceName) {
// If the login failed with the preauthenticated oVirt credentials
// then discard the credentials and revert to default authentication
@@ -582,6 +612,9 @@
return;
}
+ if (this._unavailableServices.has(serviceName))
+ return;
+
// if the password service fails, then cancel everything.
// But if, e.g., fingerprint fails, still give
// password authentication a chance to succeed
diff -Nru gnome-shell-3.38.4/js/ui/audioDeviceSelection.js gnome-shell-3.38.6/js/ui/audioDeviceSelection.js
--- gnome-shell-3.38.4/js/ui/audioDeviceSelection.js 2021-03-15 21:28:45.010284400 +0000
+++ gnome-shell-3.38.6/js/ui/audioDeviceSelection.js 2021-08-18 00:33:58.081246100 +0100
@@ -51,12 +51,16 @@
this.contentLayout.add_child(content);
if (Main.sessionMode.allowSettings) {
- this.addButton({ action: this._openSettings.bind(this),
- label: _("Sound Settings") });
+ this.addButton({
+ action: this._openSettings.bind(this),
+ label: _('Sound Settings'),
+ });
}
- this.addButton({ action: this.close.bind(this),
- label: _("Cancel"),
- key: Clutter.KEY_Escape });
+ this.addButton({
+ action: () => this.close(),
+ label: _('Cancel'),
+ key: Clutter.KEY_Escape,
+ });
}
_getDeviceLabel(device) {
diff -Nru gnome-shell-3.38.4/js/ui/boxpointer.js gnome-shell-3.38.6/js/ui/boxpointer.js
--- gnome-shell-3.38.4/js/ui/boxpointer.js 2021-03-15 21:28:45.011284400 +0000
+++ gnome-shell-3.38.6/js/ui/boxpointer.js 2021-08-18 00:33:58.082246000 +0100
@@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported BoxPointer */
-const { Clutter, GObject, St } = imports.gi;
+const { Clutter, GObject, Meta, St } = imports.gi;
const Main = imports.ui.main;
@@ -48,6 +48,13 @@
this._sourceAlignment = 0.5;
this._muteInput = true;
+ this.connect('notify::visible', () => {
+ if (this.visible)
+ Meta.disable_unredirect_for_display(global.display);
+ else
+ Meta.enable_unredirect_for_display(global.display);
+ });
+
this.connect('destroy', this._onDestroy.bind(this));
}
diff -Nru gnome-shell-3.38.4/js/ui/dialog.js gnome-shell-3.38.6/js/ui/dialog.js
--- gnome-shell-3.38.4/js/ui/dialog.js 2021-03-15 21:28:45.016284200 +0000
+++ gnome-shell-3.38.6/js/ui/dialog.js 2021-08-18 00:33:58.086246000 +0100
@@ -133,7 +133,7 @@
y_expand: true,
label,
});
- button.connect('clicked', action);
+ button.connect('clicked', () => action());
buttonInfo['button'] = button;
diff -Nru gnome-shell-3.38.4/js/ui/iconGrid.js gnome-shell-3.38.6/js/ui/iconGrid.js
--- gnome-shell-3.38.4/js/ui/iconGrid.js 2021-03-15 21:28:45.019284000 +0000
+++ gnome-shell-3.38.6/js/ui/iconGrid.js 2021-08-18 00:33:58.088246000 +0100
@@ -1311,7 +1311,8 @@
row_spacing: 0,
});
const layoutManager = new IconGridLayout(layoutParams);
- layoutManager.connect('pages-changed', () => this.emit('pages-changed'));
+ const pagesChangedId = layoutManager.connect('pages-changed',
+ () => this.emit('pages-changed'));
super._init({
style_class: 'icon-grid',
@@ -1327,6 +1328,7 @@
this.connect('actor-added', this._childAdded.bind(this));
this.connect('actor-removed', this._childRemoved.bind(this));
+ this.connect('destroy', () => layoutManager.disconnect(pagesChangedId));
}
_getChildrenToAnimate() {
diff -Nru gnome-shell-3.38.4/js/ui/keyboard.js gnome-shell-3.38.6/js/ui/keyboard.js
--- gnome-shell-3.38.4/js/ui/keyboard.js 2021-03-15 21:28:45.020284000 +0000
+++ gnome-shell-3.38.6/js/ui/keyboard.js 2021-08-18 00:33:58.089246000 +0100
@@ -197,7 +197,7 @@
add(word, callback) {
let button = new St.Button({ label: word });
button.connect('clicked', callback);
- this.add(button);
+ this.add_child(button);
}
clear() {
@@ -326,7 +326,7 @@
}
_getKeyval(key) {
- let unicode = key.charCodeAt(0);
+ let unicode = key.length ? key.charCodeAt(0) : undefined;
return Clutter.unicode_to_keysym(unicode);
}
diff -Nru gnome-shell-3.38.4/js/ui/magnifier.js gnome-shell-3.38.6/js/ui/magnifier.js
--- gnome-shell-3.38.4/js/ui/magnifier.js 2021-03-15 21:28:45.023284000 +0000
+++ gnome-shell-3.38.6/js/ui/magnifier.js 2021-08-18 00:33:58.091246100 +0100
@@ -100,15 +100,12 @@
this._mouseSprite = new Clutter.Actor({ request_mode: Clutter.RequestMode.CONTENT_SIZE });
this._mouseSprite.content = new MouseSpriteContent();
- this._cursorRoot = new Clutter.Actor();
- this._cursorRoot.add_actor(this._mouseSprite);
-
// Create the first ZoomRegion and initialize it according to the
// magnification settings.
[this.xMouse, this.yMouse] = global.get_pointer();
- let aZoomRegion = new ZoomRegion(this, this._cursorRoot);
+ let aZoomRegion = new ZoomRegion(this, this._mouseSprite);
this._zoomRegions.push(aZoomRegion);
this._settingsInit(aZoomRegion);
aZoomRegion.scrollContentsTo(this.xMouse, this.yMouse);
@@ -175,6 +172,9 @@
this.stopTrackingMouse();
}
+ if (this._crossHairs)
+ this._crossHairs.setEnabled(activate);
+
// Make sure system mouse pointer is shown when all zoom regions are
// invisible.
if (!activate)
@@ -269,7 +269,7 @@
* @returns {ZoomRegion} the newly created ZoomRegion.
*/
createZoomRegion(xMagFactor, yMagFactor, roi, viewPort) {
- let zoomRegion = new ZoomRegion(this, this._cursorRoot);
+ let zoomRegion = new ZoomRegion(this, this._mouseSprite);
zoomRegion.setViewPort(viewPort);
// We ignore the redundant width/height on the ROI
@@ -830,6 +830,12 @@
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let [xCaret, yCaret] = [extents.x * scaleFactor, extents.y * scaleFactor];
+ // Ignore event(s) if the caret size is none (0x0). This happens a lot if
+ // the cursor offset can't be translated into a location. This is a work
+ // around.
+ if (extents.width === 0 && extents.height === 0)
+ return;
+
if (this._xCaret !== xCaret || this._yCaret !== yCaret) {
[this._xCaret, this._yCaret] = [xCaret, yCaret];
this._centerFromCaretPosition();
@@ -1169,6 +1175,8 @@
this._yDelayed = null;
}
+ this._scrollContentsTimerId = 0;
+
return GLib.SOURCE_REMOVE;
});
@@ -1679,9 +1687,7 @@
this._clipSize = [0, 0];
this._clones = [];
this.reCenter();
-
- Main.layoutManager.connect('monitors-changed',
- this._monitorsChanged.bind(this));
+ this._monitorsChangedId = 0;
}
_monitorsChanged() {
@@ -1689,6 +1695,16 @@
this.reCenter();
}
+ setEnabled(enabled) {
+ if (enabled && this._monitorsChangedId === 0) {
+ this._monitorsChangedId = Main.layoutManager.connect(
+ 'monitors-changed', this._monitorsChanged.bind(this));
+ } else if (!enabled && this._monitorsChangedId !== 0) {
+ Main.layoutManager.disconnect(this._monitorsChangedId);
+ this._monitorsChangedId = 0;
+ }
+ }
+
/**
* addToZoomRegion
* Either add the crosshairs actor to the given ZoomRegion, or, if it is
diff -Nru gnome-shell-3.38.4/js/ui/shellDBus.js gnome-shell-3.38.6/js/ui/shellDBus.js
--- gnome-shell-3.38.4/js/ui/shellDBus.js 2021-03-15 21:28:45.035283600 +0000
+++ gnome-shell-3.38.6/js/ui/shellDBus.js 2021-08-18 00:33:58.099246000 +0100
@@ -111,7 +111,7 @@
let [accel, modeFlags, grabFlags] = params;
let sender = invocation.get_sender();
let bindingAction = this._grabAcceleratorForSender(accel, modeFlags, grabFlags, sender);
- return invocation.return_value(GLib.Variant.new('(u)', [bindingAction]));
+ invocation.return_value(GLib.Variant.new('(u)', [bindingAction]));
}
GrabAcceleratorsAsync(params, invocation) {
@@ -122,7 +122,7 @@
let [accel, modeFlags, grabFlags] = accels[i];
bindingActions.push(this._grabAcceleratorForSender(accel, modeFlags, grabFlags, sender));
}
- return invocation.return_value(GLib.Variant.new('(au)', [bindingActions]));
+ invocation.return_value(GLib.Variant.new('(au)', [bindingActions]));
}
UngrabAcceleratorAsync(params, invocation) {
@@ -130,7 +130,7 @@
let sender = invocation.get_sender();
let ungrabSucceeded = this._ungrabAcceleratorForSender(action, sender);
- return invocation.return_value(GLib.Variant.new('(b)', [ungrabSucceeded]));
+ invocation.return_value(GLib.Variant.new('(b)', [ungrabSucceeded]));
}
UngrabAcceleratorsAsync(params, invocation) {
@@ -141,7 +141,7 @@
for (let i = 0; i < actions.length; i++)
ungrabSucceeded &= this._ungrabAcceleratorForSender(actions[i], sender);
- return invocation.return_value(GLib.Variant.new('(b)', [ungrabSucceeded]));
+ invocation.return_value(GLib.Variant.new('(b)', [ungrabSucceeded]));
}
_emitAcceleratorActivated(action, device, timestamp) {
@@ -215,11 +215,13 @@
let sender = invocation.get_sender();
let [dict] = params;
Main.osdMonitorLabeler.show(sender, dict);
+ invocation.return_value(null);
}
HideMonitorLabelsAsync(params, invocation) {
let sender = invocation.get_sender();
Main.osdMonitorLabeler.hide(sender);
+ invocation.return_value(null);
}
_checkOverviewVisibleChanged() {
diff -Nru gnome-shell-3.38.4/js/ui/status/network.js gnome-shell-3.38.6/js/ui/status/network.js
--- gnome-shell-3.38.4/js/ui/status/network.js 2021-03-15 21:28:45.037283700 +0000
+++ gnome-shell-3.38.6/js/ui/status/network.js 2021-08-18 00:33:58.102246000 +0100
@@ -936,7 +936,7 @@
this.contentLayout.add_child(this._stack);
- this._disconnectButton = this.addButton({ action: this.close.bind(this),
+ this._disconnectButton = this.addButton({ action: () => this.close(),
label: _("Cancel"),
key: Clutter.KEY_Escape });
this._connectButton = this.addButton({ action: this._connect.bind(this),
diff -Nru gnome-shell-3.38.4/js/ui/status/power.js gnome-shell-3.38.6/js/ui/status/power.js
--- gnome-shell-3.38.4/js/ui/status/power.js 2021-03-15 21:28:45.037283700 +0000
+++ gnome-shell-3.38.6/js/ui/status/power.js 2021-08-18 00:33:58.102246000 +0100
@@ -22,29 +22,34 @@
_init() {
super._init();
- this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
- this._desktopSettings.connect('changed::%s'.format(SHOW_BATTERY_PERCENTAGE),
- this._sync.bind(this));
+ this._desktopSettings = new Gio.Settings({
+ schema_id: 'org.gnome.desktop.interface',
+ });
+ this._desktopSettings.connect(
+ 'changed::%s'.format(SHOW_BATTERY_PERCENTAGE), this._sync.bind(this));
this._indicator = this._addIndicator();
- this._percentageLabel = new St.Label({ y_expand: true,
- y_align: Clutter.ActorAlign.CENTER });
+ this._percentageLabel = new St.Label({
+ y_expand: true,
+ y_align: Clutter.ActorAlign.CENTER,
+ });
this.add_child(this._percentageLabel);
this.add_style_class_name('power-status');
this._proxy = new PowerManagerProxy(Gio.DBus.system, BUS_NAME, OBJECT_PATH,
- (proxy, error) => {
- if (error) {
- log(error.message);
- return;
- }
- this._proxy.connect('g-properties-changed',
- this._sync.bind(this));
- this._sync();
- });
-
- this._item = new PopupMenu.PopupSubMenuMenuItem("", true);
- this._item.menu.addSettingsAction(_("Power Settings"), 'gnome-power-panel.desktop');
+ (proxy, error) => {
+ if (error) {
+ log(error.message);
+ } else {
+ this._proxy.connect('g-properties-changed',
+ this._sync.bind(this));
+ }
+ this._sync();
+ });
+
+ this._item = new PopupMenu.PopupSubMenuMenuItem('', true);
+ this._item.menu.addSettingsAction(_('Power Settings'),
+ 'gnome-power-panel.desktop');
this.menu.addMenuItem(this._item);
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
@@ -59,36 +64,38 @@
_getStatus() {
let seconds = 0;
- if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)
- return _("Fully Charged");
- else if (this._proxy.State == UPower.DeviceState.CHARGING)
+ if (this._proxy.State === UPower.DeviceState.FULLY_CHARGED)
+ return _('Fully Charged');
+ else if (this._proxy.State === UPower.DeviceState.CHARGING)
seconds = this._proxy.TimeToFull;
- else if (this._proxy.State == UPower.DeviceState.DISCHARGING)
+ else if (this._proxy.State === UPower.DeviceState.DISCHARGING)
seconds = this._proxy.TimeToEmpty;
- else if (this._proxy.State == UPower.DeviceState.PENDING_CHARGE)
- return _("Not Charging");
+ else if (this._proxy.State === UPower.DeviceState.PENDING_CHARGE)
+ return _('Not Charging');
// state is PENDING_DISCHARGE
else
- return _("Estimating…");
+ return _('Estimating…');
let time = Math.round(seconds / 60);
- if (time == 0) {
+ if (time === 0) {
// 0 is reported when UPower does not have enough data
// to estimate battery life
- return _("Estimating…");
+ return _('Estimating…');
}
let minutes = time % 60;
let hours = Math.floor(time / 60);
- if (this._proxy.State == UPower.DeviceState.DISCHARGING) {
+ if (this._proxy.State === UPower.DeviceState.DISCHARGING) {
// Translators: this is <hours>:<minutes> Remaining (<percentage>)
- return _("%d\u2236%02d Remaining (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
+ return _('%d\u2236%02d Remaining (%d\u2009%%)').format(
+ hours, minutes, this._proxy.Percentage);
}
- if (this._proxy.State == UPower.DeviceState.CHARGING) {
+ if (this._proxy.State === UPower.DeviceState.CHARGING) {
// Translators: this is <hours>:<minutes> Until Full (<percentage>)
- return _("%d\u2236%02d Until Full (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
+ return _('%d\u2236%02d Until Full (%d\u2009%%)').format(
+ hours, minutes, this._proxy.Percentage);
}
return null;
@@ -99,7 +106,8 @@
let visible = this._proxy.IsPresent;
if (visible) {
this._item.show();
- this._percentageLabel.visible = this._desktopSettings.get_boolean(SHOW_BATTERY_PERCENTAGE);
+ this._percentageLabel.visible =
+ this._desktopSettings.get_boolean(SHOW_BATTERY_PERCENTAGE);
} else {
// If there's no battery, then we use the power icon.
this._item.hide();
@@ -109,7 +117,7 @@
}
// The icons
- let chargingState = this._proxy.State == UPower.DeviceState.CHARGING
+ let chargingState = this._proxy.State === UPower.DeviceState.CHARGING
? '-charging' : '';
let fillLevel = 10 * Math.floor(this._proxy.Percentage / 10);
const charged =
diff -Nru gnome-shell-3.38.4/meson.build gnome-shell-3.38.6/meson.build
--- gnome-shell-3.38.4/meson.build 2021-03-15 21:28:45.044283400 +0000
+++ gnome-shell-3.38.6/meson.build 2021-08-18 00:33:58.108246000 +0100
@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
- version: '3.38.4',
+ version: '3.38.6',
meson_version: '>= 0.53.0',
license: 'GPLv2+'
)
@@ -155,6 +155,7 @@
)
cdata.set('HAVE_FDWALK', cc.has_function('fdwalk'))
cdata.set('HAVE_MALLINFO', cc.has_function('mallinfo'))
+cdata.set('HAVE_MALLINFO2', cc.has_function('mallinfo2'))
cdata.set('HAVE_SYS_RESOURCE_H', cc.has_header('sys/resource.h'))
cdata.set('HAVE__NL_TIME_FIRST_WEEKDAY',
cc.has_header_symbol('langinfo.h', '_NL_TIME_FIRST_WEEKDAY')
diff -Nru gnome-shell-3.38.4/NEWS gnome-shell-3.38.6/NEWS
--- gnome-shell-3.38.4/NEWS 2021-03-15 21:28:44.983285000 +0000
+++ gnome-shell-3.38.6/NEWS 2021-08-18 00:33:58.054246000 +0100
@@ -1,3 +1,33 @@
+3.38.6
+======
+* Fix IM popup visibility when in fullscreen [Florian; !1900]
+* magnifier: Fix view jumps when using caret tracking [Lee; !1823]
+* Fixed crash [Florian; !1885]
+* Misc. bug fixes and cleanups [Florian, Carlos, Robert; !1891, !1902,
+ !1901, !1786, !1909]
+
+Contributors:
+ Carlos Garnacho, Lee, Robert Mader, Florian Müllner
+
+Translators:
+ Hugo Carvalho [pt]
+
+3.38.5
+======
+* Improve handling of authentication cancellation at login [Marco; !1783]
+* Fix word suggestions in on-screen keyboard [Jia; !1806]
+* Fix freeze after cancelling (some) system-modal dialogs
+ [Daniel, Florian; !1757, !1819]
+* Fixed crashes [Gustavo; !1848]
+* Misc. bug fixes [Daniel; !1758]
+
+Contributors:
+ Jia Chao, Florian Müllner, Gustavo Noronha Silva, Marco Trevisan (Treviño),
+ Daniel van Vugt
+
+Translators:
+ Emin Tufan Çetin [tr]
+
3.38.4
======
* Fix stuck grab after failed area screenshots [Sebastian; !1600]
diff -Nru gnome-shell-3.38.4/po/pt.po gnome-shell-3.38.6/po/pt.po
diff -Nru gnome-shell-3.38.4/po/tr.po gnome-shell-3.38.6/po/tr.po
diff -Nru gnome-shell-3.38.4/src/calendar-server/gnome-shell-calendar-server.c gnome-shell-3.38.6/src/calendar-server/gnome-shell-calendar-server.c
--- gnome-shell-3.38.4/src/calendar-server/gnome-shell-calendar-server.c 2021-03-15 21:28:45.193279300 +0000
+++ gnome-shell-3.38.6/src/calendar-server/gnome-shell-calendar-server.c 2021-08-18 00:33:58.188246500 +0100
@@ -405,8 +405,7 @@
(gboolean) appt->is_all_day,
(gint64) start_time,
(gint64) end_time,
- extras_builder);
- g_variant_builder_clear (&extras_builder);
+ &extras_builder);
}
}
diff -Nru gnome-shell-3.38.4/src/main.c gnome-shell-3.38.6/src/main.c
--- gnome-shell-3.38.4/src/main.c 2021-03-15 21:28:45.195279400 +0000
+++ gnome-shell-3.38.6/src/main.c 2021-08-18 00:33:58.191246500 +0100
@@ -2,7 +2,7 @@
#include "config.h"
-#ifdef HAVE_MALLINFO
+#if defined (HAVE_MALLINFO) || defined (HAVE_MALLINFO2)
#include <malloc.h>
#endif
#include <stdlib.h>
@@ -256,8 +256,12 @@
malloc_statistics_callback (ShellPerfLog *perf_log,
gpointer data)
{
-#ifdef HAVE_MALLINFO
+#if defined (HAVE_MALLINFO) || defined (HAVE_MALLINFO2)
+#ifdef HAVE_MALLINFO2
+ struct mallinfo2 info = mallinfo2 ();
+#else
struct mallinfo info = mallinfo ();
+#endif
shell_perf_log_update_statistic_i (perf_log,
"malloc.arenaSize",
@@ -268,7 +272,7 @@
shell_perf_log_update_statistic_i (perf_log,
"malloc.usedSize",
info.uordblks);
-#endif
+#endif /* defined (HAVE_MALLINFO) || defined (HAVE_MALLINFO2) */
}
static void
diff -Nru gnome-shell-3.38.4/src/shell-app.c gnome-shell-3.38.6/src/shell-app.c
--- gnome-shell-3.38.4/src/shell-app.c 2021-03-15 21:28:45.197279200 +0000
+++ gnome-shell-3.38.6/src/shell-app.c 2021-08-18 00:33:58.193246400 +0100
@@ -1046,10 +1046,11 @@
{
ShellApp *app = user_data;
ShellOrgGtkApplication *proxy;
+ g_autoptr (GError) error = NULL;
g_assert (SHELL_IS_APP (app));
- proxy = shell_org_gtk_application_proxy_new_finish (result, NULL);
+ proxy = shell_org_gtk_application_proxy_new_finish (result, &error);
if (proxy != NULL)
{
app->running_state->application_proxy = proxy;
@@ -1061,7 +1062,8 @@
g_object_notify (G_OBJECT (app), "busy");
}
- if (app->running_state != NULL)
+ if (app->running_state != NULL &&
+ !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
g_clear_object (&app->running_state->cancellable);
g_object_unref (app);
diff -Nru gnome-shell-3.38.4/src/shell-global.c gnome-shell-3.38.6/src/shell-global.c
--- gnome-shell-3.38.4/src/shell-global.c 2021-03-15 21:28:45.199279000 +0000
+++ gnome-shell-3.38.6/src/shell-global.c 2021-08-18 00:33:58.194246500 +0100
@@ -32,11 +32,6 @@
#define GNOME_DESKTOP_USE_UNSTABLE_API
#include <libgnome-desktop/gnome-systemd.h>
-/* Memory report bits */
-#ifdef HAVE_MALLINFO
-#include <malloc.h>
-#endif
-
#if defined __OpenBSD__ || defined __FreeBSD__
#include <sys/sysctl.h>
#endif
diff -Nru gnome-shell-3.38.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in gnome-shell-3.38.6/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
--- gnome-shell-3.38.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in 2021-03-15 21:28:45.222278600 +0000
+++ gnome-shell-3.38.6/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in 2021-08-18 00:33:58.223246600 +0100
@@ -39,6 +39,8 @@
</description>
<releases>
+ <release version="3.38.6" date="2021-08-18"/>
+ <release version="3.38.5" date="2021-06-10"/>
<release version="3.38.4" date="2021-03-15"/>
<release version="3.38.3" date="2021-01-14"/>
<release version="3.38.2" date="2020-12-02"/>
diff -Nru gnome-shell-3.38.4/subprojects/extensions-app/meson.build gnome-shell-3.38.6/subprojects/extensions-app/meson.build
--- gnome-shell-3.38.4/subprojects/extensions-app/meson.build 2021-03-15 21:28:45.223278500 +0000
+++ gnome-shell-3.38.6/subprojects/extensions-app/meson.build 2021-08-18 00:33:58.224246500 +0100
@@ -1,5 +1,5 @@
project('gnome-extensions-app',
- version: '3.38.4',
+ version: '3.38.6',
meson_version: '>= 0.53.0',
license: 'GPLv2+'
)
diff -Nru gnome-shell-3.38.4/subprojects/extensions-app/subprojects/shew/meson.build gnome-shell-3.38.6/subprojects/extensions-app/subprojects/shew/meson.build
--- gnome-shell-3.38.4/subprojects/extensions-app/subprojects/shew/meson.build 2021-03-15 21:28:45.225278400 +0000
+++ gnome-shell-3.38.6/subprojects/extensions-app/subprojects/shew/meson.build 2021-08-18 00:33:58.228246700 +0100
@@ -1,5 +1,5 @@
project('shew', 'c',
- version: '3.38.4',
+ version: '3.38.6',
meson_version: '>= 0.53.0',
license: 'LGPLv2+',
)
diff -Nru gnome-shell-3.38.4/subprojects/extensions-tool/meson.build gnome-shell-3.38.6/subprojects/extensions-tool/meson.build
--- gnome-shell-3.38.4/subprojects/extensions-tool/meson.build 2021-03-15 21:28:45.224278500 +0000
+++ gnome-shell-3.38.6/subprojects/extensions-tool/meson.build 2021-08-18 00:33:58.226246600 +0100
@@ -1,5 +1,5 @@
project('gnome-extensions-tool', 'c',
- version: '3.38.4',
+ version: '3.38.6',
meson_version: '>= 0.53.0',
license: 'GPLv2+'
)
diff -Nru gnome-shell-3.38.4/subprojects/shew/meson.build gnome-shell-3.38.6/subprojects/shew/meson.build
--- gnome-shell-3.38.4/subprojects/shew/meson.build 2021-03-15 21:28:45.225278400 +0000
+++ gnome-shell-3.38.6/subprojects/shew/meson.build 2021-08-18 00:33:58.228246700 +0100
@@ -1,5 +1,5 @@
project('shew', 'c',
- version: '3.38.4',
+ version: '3.38.6',
meson_version: '>= 0.53.0',
license: 'LGPLv2+',
)
--- End Message ---