Update to 3.37.91

This commit is contained in:
Florian Müllner 2020-08-24 18:04:29 +02:00
parent 2f4e696626
commit 4bcececbe6
4 changed files with 0 additions and 401 deletions

View File

@ -1,52 +0,0 @@
From c907dbe205257d29ca74d9e30cf2e100d85f277b Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 15 Aug 2018 14:26:19 +0200
Subject: [PATCH 1/2] endSessionDialog: Immediately add buttons to the dialog
Immediately add buttons to the dialog instead of first building an
array of button-info structs.
This is a preparation patch for adding support changing the "Reboot"
button into a "Boot Options" button when Alt is pressed.
---
js/ui/endSessionDialog.js | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js
index ff1aa0ddf..27ddf6804 100644
--- a/js/ui/endSessionDialog.js
+++ b/js/ui/endSessionDialog.js
@@ -369,15 +369,17 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
}
_updateButtons() {
- let dialogContent = DialogContent[this._type];
- let buttons = [{ action: this.cancel.bind(this),
+ this.clearButtons();
+
+ this.addButton({ action: this.cancel.bind(this),
label: _("Cancel"),
- key: Clutter.KEY_Escape }];
+ key: Clutter.KEY_Escape });
+ let dialogContent = DialogContent[this._type];
for (let i = 0; i < dialogContent.confirmButtons.length; i++) {
let signal = dialogContent.confirmButtons[i].signal;
let label = dialogContent.confirmButtons[i].label;
- buttons.push({
+ let button = this.addButton({
action: () => {
this.close(true);
let signalId = this.connect('closed', () => {
@@ -388,8 +390,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
label,
});
}
-
- this.setButtons(buttons);
}
close(skipSignal) {
--
2.24.1

View File

@ -1,117 +0,0 @@
From f91a2109fb139131a5f4ba5d00fca043df82ba10 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 15 Aug 2018 15:03:56 +0200
Subject: [PATCH 2/2] endSessionDialog: Support rebooting into the bootloader
menu aka ("Boot Options")
This implements the "Alt" behavior for the "Reboot" button as outlined in
the design here: https://wiki.gnome.org/Design/OS/BootOptions
This causes the endSessionDialog to send a ConfirmedRebootToBootOptions signal
to gnome-session instead of the normal ConfirmedReboot signal, actually
telling the boot-loader that it should show its menu the next boot is left
up to gnome-session.
Note I've tried implemeting this with the AltSwitcher class from
js/ui/status/system.js first, but that puts the button in a St.Bin()
which causes the button to think it is the only button on the dialog
and makes it have rounded corners on both of its bottom corners.
---
js/ui/endSessionDialog.js | 52 +++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js
index 27ddf6804..6cebf2a81 100644
--- a/js/ui/endSessionDialog.js
+++ b/js/ui/endSessionDialog.js
@@ -239,6 +239,9 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._totalSecondsToStayOpen = 0;
this._applications = [];
this._sessions = [];
+ this._capturedEventId = 0;
+ this._rebootButton = null;
+ this._rebootButtonAlt = null;
this.connect('destroy',
this._onDestroy.bind(this));
@@ -368,6 +371,26 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._sessionSection.visible = hasSessions;
}
+ _onCapturedEvent(actor, event) {
+ let altEnabled = false;
+
+ let type = event.type();
+ if (type != Clutter.EventType.KEY_PRESS && type != Clutter.EventType.KEY_RELEASE)
+ return Clutter.EVENT_PROPAGATE;
+
+ let key = event.get_key_symbol();
+ if (key != Clutter.KEY_Alt_L && key != Clutter.KEY_Alt_R)
+ return Clutter.EVENT_PROPAGATE;
+
+ if (type == Clutter.EventType.KEY_PRESS)
+ altEnabled = true;
+
+ this._rebootButton.visible = !altEnabled;
+ this._rebootButtonAlt.visible = altEnabled;
+
+ return Clutter.EVENT_PROPAGATE;
+ }
+
_updateButtons() {
this.clearButtons();
@@ -389,7 +412,34 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
},
label,
});
+
+ // Add Alt "Boot Options" option to the Reboot button
+ if (signal == 'ConfirmedReboot') {
+ this._rebootButton = button;
+ this._rebootButtonAlt = this.addButton({
+ action: () => {
+ this.close(true);
+ let signalId = this.connect('closed', () => {
+ this.disconnect(signalId);
+ this._confirm('ConfirmedRebootToBootOptions');
+ });
+ },
+ label: C_("button", "Boot Options")
+ });
+ this._rebootButtonAlt.visible = false;
+ this._capturedEventId = global.stage.connect('captured-event',
+ this._onCapturedEvent.bind(this));
+ }
+ }
+ }
+
+ _stopAltCapture() {
+ if (this._capturedEventId > 0) {
+ global.stage.disconnect(this._capturedEventId);
+ this._capturedEventId = 0;
}
+ this._rebootButton = null;
+ this._rebootButtonAlt = null;
}
close(skipSignal) {
@@ -401,6 +451,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
cancel() {
this._stopTimer();
+ this._stopAltCapture();
this._dbusImpl.emit_signal('Canceled', null);
this.close();
}
@@ -409,6 +460,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
let callback = () => {
this._fadeOutDialog();
this._stopTimer();
+ this._stopAltCapture();
this._dbusImpl.emit_signal(signal, null);
};
--
2.24.1

View File

@ -1,173 +0,0 @@
From 112b139a9e1277a3f4e13cd8ba9f2da66babc5c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 13 Aug 2020 23:35:27 +0200
Subject: [PATCH 1/2] cleanup: Remove old compatibility code
Since gjs moved to mozjs60, return values of int8_t arrays can
no longer be treated as strings. We originally made the conversion
conditional to keep working with the (then) stable gjs release.
That was two years ago and we require a more recent gjs nowadays,
so there's no good reason for keeping the old code path.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1407
---
js/ui/components/networkAgent.js | 9 ++-------
js/ui/extensionSystem.js | 4 ++--
js/ui/keyboard.js | 4 ++--
js/ui/padOsd.js | 4 ++--
js/ui/sessionMode.js | 4 ++--
5 files changed, 10 insertions(+), 15 deletions(-)
diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js
index 1033a6de39..32ec1da852 100644
--- a/js/ui/components/networkAgent.js
+++ b/js/ui/components/networkAgent.js
@@ -2,6 +2,7 @@
/* exported Component */
const { Clutter, Gio, GLib, GObject, NM, Pango, Shell, St } = imports.gi;
+const ByteArray = imports.byteArray;
const Signals = imports.signals;
const Dialog = imports.ui.dialog;
@@ -522,13 +523,7 @@ var VPNRequestHandler = class {
let contentOverride;
try {
- data = this._dataStdout.peek_buffer();
-
- if (data instanceof Uint8Array)
- data = imports.byteArray.toGBytes(data);
- else
- data = data.toGBytes();
-
+ data = ByteArray.toGBytes(this._dataStdout.peek_buffer());
keyfile.load_from_bytes(data, GLib.KeyFileFlags.NONE);
if (keyfile.get_integer(VPN_UI_GROUP, 'Version') != 2)
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
index f0b8361714..41ef98d70e 100644
--- a/js/ui/extensionSystem.js
+++ b/js/ui/extensionSystem.js
@@ -2,6 +2,7 @@
/* exported init connect disconnect */
const { GLib, Gio, GObject, Shell, St } = imports.gi;
+const ByteArray = imports.byteArray;
const Signals = imports.signals;
const ExtensionDownloader = imports.ui.extensionDownloader;
@@ -282,8 +283,7 @@ var ExtensionManager = class {
let metadataContents, success_;
try {
[success_, metadataContents] = metadataFile.load_contents(null);
- if (metadataContents instanceof Uint8Array)
- metadataContents = imports.byteArray.toString(metadataContents);
+ metadataContents = ByteArray.toString(metadataContents);
} catch (e) {
throw new Error('Failed to load metadata.json: %s'.format(e.toString()));
}
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index 90bd17b86f..a579495ad6 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -2,6 +2,7 @@
/* exported KeyboardManager */
const { Clutter, Gio, GLib, GObject, Meta, St } = imports.gi;
+const ByteArray = imports.byteArray;
const Signals = imports.signals;
const InputSourceManager = imports.ui.status.keyboard;
@@ -532,8 +533,7 @@ var KeyboardModel = class {
_loadModel(groupName) {
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/osk-layouts/%s.json'.format(groupName));
let [success_, contents] = file.load_contents(null);
- if (contents instanceof Uint8Array)
- contents = imports.byteArray.toString(contents);
+ contents = ByteArray.toString(contents);
return JSON.parse(contents);
}
diff --git a/js/ui/padOsd.js b/js/ui/padOsd.js
index 115b72be2e..9ab1cbb9df 100644
--- a/js/ui/padOsd.js
+++ b/js/ui/padOsd.js
@@ -3,6 +3,7 @@
const { Atk, Clutter, GDesktopEnums, Gio,
GLib, GObject, Gtk, Meta, Pango, Rsvg, St } = imports.gi;
+const ByteArray = imports.byteArray;
const Signals = imports.signals;
const Main = imports.ui.main;
@@ -297,8 +298,7 @@ var PadDiagram = GObject.registerClass({
_init(params) {
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/pad-osd.css');
let [success_, css] = file.load_contents(null);
- if (css instanceof Uint8Array)
- css = imports.byteArray.toString(css);
+ css = ByteArray.toString(css);
this._curEdited = null;
this._prevEdited = null;
this._css = css;
diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
index 454804933e..2136e948f1 100644
--- a/js/ui/sessionMode.js
+++ b/js/ui/sessionMode.js
@@ -1,6 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported SessionMode, listModes */
+const ByteArray = imports.byteArray;
const GLib = imports.gi.GLib;
const Signals = imports.signals;
@@ -105,8 +106,7 @@ function _loadMode(file, info) {
let fileContent, success_, newMode;
try {
[success_, fileContent] = file.load_contents(null);
- if (fileContent instanceof Uint8Array)
- fileContent = imports.byteArray.toString(fileContent);
+ fileContent = ByteArray.toString(fileContent);
newMode = JSON.parse(fileContent);
} catch (e) {
return;
--
2.26.2
From 990c171bed0e052a07145ad03fae89c33d86ac17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 13 Aug 2020 23:37:31 +0200
Subject: [PATCH 2/2] networkAgent: Add missing Uint8Array => string conversion
When promisifying async operations in commit 764527c8c, the
finish function for read_line_async() was sneakily changed from
read_line_finish_utf8() to read_line_finish().
That is, the call returns a Uint8Array now that requires an
explicit conversion to string.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1407
---
js/ui/components/networkAgent.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js
index 32ec1da852..29565d214f 100644
--- a/js/ui/components/networkAgent.js
+++ b/js/ui/components/networkAgent.js
@@ -494,7 +494,7 @@ var VPNRequestHandler = class {
return;
}
- this._vpnChildProcessLineOldStyle(line);
+ this._vpnChildProcessLineOldStyle(ByteArray.toString(line));
// try to read more!
this._readStdoutOldStyle();
--
2.26.2

View File

@ -1,59 +0,0 @@
From 56b6e653175bbf85261712dda96cb99bcd727482 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Thu, 20 Aug 2020 10:08:01 +0200
Subject: [PATCH 1/2] data: Only unset environment when the service actually
ran
ExecStopPost= is executed even if ExecCondition= fails. As such, we need
to add a guard as we would otherwise clear environment variables on X11
sessions (rendering them utterly useless).
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1418
---
data/org.gnome.Shell@wayland.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/org.gnome.Shell@wayland.service.in b/data/org.gnome.Shell@wayland.service.in
index 427e3c8072..692d45bb37 100644
--- a/data/org.gnome.Shell@wayland.service.in
+++ b/data/org.gnome.Shell@wayland.service.in
@@ -26,7 +26,7 @@ ExecStart=@bindir@/gnome-shell
SuccessExitStatus=1
# unset some environment variables that were set by the shell and won't work now that the shell is gone
-ExecStopPost=-systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY
+ExecStopPost=-/bin/sh -c 'test "$SERVICE_RESULT" != "exec-condition" && systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY'
# On wayland we cannot restart
Restart=no
--
GitLab
From 6ad9c99040cec703cec85c68d1d168d3845ceaaa Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Thu, 20 Aug 2020 10:09:00 +0200
Subject: [PATCH 2/2] data: Fix description of org.gnome.Shell.target
The target is generic between X11 and wayland now, so remove the
reference to wayland.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1418
---
data/org.gnome.Shell.target | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/org.gnome.Shell.target b/data/org.gnome.Shell.target
index 358189f26f..55f9539e98 100644
--- a/data/org.gnome.Shell.target
+++ b/data/org.gnome.Shell.target
@@ -1,5 +1,5 @@
[Unit]
-Description=GNOME Shell on Wayland
+Description=GNOME Shell
DefaultDependencies=no
Requisite=gnome-session-initialized.target
--
GitLab