import gnome-shell-3.32.2-50.el8

This commit is contained in:
CentOS Sources 2022-12-13 06:11:50 +00:00 committed by Stepan Oksanichenko
parent 6c0b3c2483
commit 3a69c2d5f7
4 changed files with 268 additions and 14 deletions

View File

@ -0,0 +1,51 @@
From d2661753076a60a7981836e4a85e88c4588fb1b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 17 Nov 2022 15:21:42 +0100
Subject: [PATCH] layout: Initialize regions unconditionally
We currently initialize regions in all code paths except for the
greeter. But while there are no windows on the login screen, the
work area can still be used for positioning, for example for
notifications.
Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2546>
---
js/ui/layout.js | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/js/ui/layout.js b/js/ui/layout.js
index beb4c0a5d..bb51946b7 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -624,20 +624,19 @@ var LayoutManager = GObject.registerClass({
reactive: true });
this.addChrome(this._coverPane);
+ // Force an update of the regions before we scale the UI group to
+ // get the correct allocation for the struts.
+ // Do this even when we don't animate on restart, so that maximized
+ // windows restore to the right size.
+ this._updateRegions();
+
if (Meta.is_restart()) {
- // On restart, we don't do an animation. Force an update of the
- // regions immediately so that maximized windows restore to the
- // right size taking struts into account.
- this._updateRegions();
+ // On restart, we don't do an animation.
} else if (Main.sessionMode.isGreeter) {
this.panelBox.translation_y = -this.panelBox.height;
} else {
this._updateBackgrounds();
- // We need to force an update of the regions now before we scale
- // the UI group to get the correct allocation for the struts.
- this._updateRegions();
-
this.keyboardBox.hide();
let monitor = this.primaryMonitor;
--
2.38.1

View File

@ -0,0 +1,59 @@
From 96404287bc4269dea7b037e7b178e54ebf616d47 Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Tue, 24 Nov 2020 17:34:08 +0800
Subject: [PATCH] st-bin: Disallow st_bin_set_child with already-parented
children
Not checking for this would result in `clutter_actor_add_child`
failing, but StBin keeping a copy in `priv->child`. So later on,
`st_bin_remove` would never be called on it and this assertion
would fail and crash the whole shell:
```
static void
st_bin_destroy (ClutterActor *actor)
{
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (actor));
if (priv->child)
clutter_actor_destroy (priv->child);
g_assert (priv->child == NULL);
```
By disallowing spurious `st_bin_set_child` calls we now prevent StBin
from entering such a corrupt state and the above assertion won't fail
anymore.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1507>
---
src/st/st-bin.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/st/st-bin.c b/src/st/st-bin.c
index f013909e8..7959a4e95 100644
--- a/src/st/st-bin.c
+++ b/src/st/st-bin.c
@@ -434,6 +434,19 @@ st_bin_set_child (StBin *bin,
if (priv->child == child)
return;
+ if (child)
+ {
+ ClutterActor *parent = clutter_actor_get_parent (child);
+
+ if (parent)
+ {
+ g_warning ("%s: The provided 'child' actor %p already has a "
+ "(different) parent %p and can't be made a child of %p.",
+ G_STRFUNC, child, parent, bin);
+ return;
+ }
+ }
+
if (priv->child)
clutter_actor_remove_child (CLUTTER_ACTOR (bin), priv->child);
--
2.38.1

View File

@ -0,0 +1,131 @@
From e2a1b737156804e2647e5de938c3d170c11b6ba4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 31 Jul 2020 20:40:36 +0200
Subject: [PATCH 1/2] status/network: Use D-Bus to launch Settings panels
For more obscure network configurations, we need to launch the
corresponding Settings panel with additional parameters, so we
cannot simply launch the .desktop file.
However we can do better than spawning a command line: Control center
exposes an application action we can use instead, so the process is
launched with the appropriate activation environment and startup
notification support.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1385
---
js/ui/status/network.js | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index f8991d02f..0e7e82ce0 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -15,6 +15,8 @@ const Util = imports.misc.util;
const { loadInterfaceXML } = imports.misc.fileUtils;
+Gio._promisify(Gio.DBusConnection.prototype, 'call', 'call_finish');
+
const NMConnectionCategory = {
INVALID: 'invalid',
WIRED: 'wired',
@@ -75,6 +77,30 @@ function ensureActiveConnectionProps(active, client) {
}
}
+function launchSettingsPanel(panel, ...args) {
+ const param = new GLib.Variant('(sav)',
+ [panel, args.map(s => new GLib.Variant('s', s))]);
+ const platformData = {
+ 'desktop-startup-id': new GLib.Variant('s',
+ '_TIME%s'.format(global.get_current_time())),
+ };
+ try {
+ Gio.DBus.session.call(
+ 'org.gnome.ControlCenter',
+ '/org/gnome/ControlCenter',
+ 'org.freedesktop.Application',
+ 'ActivateAction',
+ new GLib.Variant('(sava{sv})',
+ ['launch-panel', [param], platformData]),
+ null,
+ Gio.DBusCallFlags.NONE,
+ -1,
+ null);
+ } catch (e) {
+ log('Failed to launch Settings panel: %s'.format(e.message));
+ }
+}
+
var NMConnectionItem = class {
constructor(section, connection) {
this._section = section;
@@ -534,8 +560,7 @@ var NMDeviceModem = class extends NMConnectionDevice {
}
_autoConnect() {
- Util.spawn(['gnome-control-center', 'network',
- 'connect-3g', this._device.get_path()]);
+ launchSettingsPanel('network', 'connect-3g', this._device.get_path());
}
_sessionUpdated() {
@@ -920,8 +945,8 @@ var NMWirelessDialog = class extends ModalDialog.ModalDialog {
|| (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
// 802.1x-enabled APs require further configuration, so they're
// handled in gnome-control-center
- Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
- this._device.get_path(), accessPoints[0].get_path()]);
+ launchSettingsPanel('wifi', 'connect-8021x-wifi',
+ this._device.get_path(), accessPoints[0].get_path());
} else {
let connection = new NM.SimpleConnection();
this._client.add_and_activate_connection_async(connection, this._device, accessPoints[0].get_path(), null, null)
--
2.38.1
From 9ca1989fcc73157685742470c25f538d01d8df44 Mon Sep 17 00:00:00 2001
From: Xiaoguang Wang <xwang@suse.com>
Date: Mon, 21 Feb 2022 09:11:23 +0800
Subject: [PATCH 2/2] network: Get dbus path from NMDevice
In the NetworkManager new version the NMDevice.get_path returns pci
path, we need to use NM prototype to get device dbus path.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4565
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2194>
---
js/ui/status/network.js | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index 0e7e82ce0..9d6a83b73 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -946,7 +946,7 @@ var NMWirelessDialog = class extends ModalDialog.ModalDialog {
// 802.1x-enabled APs require further configuration, so they're
// handled in gnome-control-center
launchSettingsPanel('wifi', 'connect-8021x-wifi',
- this._device.get_path(), accessPoints[0].get_path());
+ this._getDeviceDBusPath(), accessPoints[0].get_path());
} else {
let connection = new NM.SimpleConnection();
this._client.add_and_activate_connection_async(connection, this._device, accessPoints[0].get_path(), null, null)
@@ -956,6 +956,11 @@ var NMWirelessDialog = class extends ModalDialog.ModalDialog {
this.close();
}
+ _getDeviceDBusPath() {
+ // nm_object_get_path() is shadowed by nm_device_get_path()
+ return NM.Object.prototype.get_path.call(this._device);
+ }
+
_notifySsidCb(accessPoint) {
if (accessPoint.get_ssid() != null) {
accessPoint.disconnect(accessPoint._notifySsidId);
--
2.38.1

View File

@ -1,6 +1,6 @@
Name: gnome-shell
Version: 3.32.2
Release: 48%{?dist}
Release: 50%{?dist}
Summary: Window management and application launching for GNOME
Group: User Interface/Desktops
@ -66,27 +66,30 @@ Patch56: 0001-main-Unset-the-right-prevFocus-actor-after-the-focus.patch
Patch57: defend-against-corrupt-notifications.patch
Patch58: 0001-status-volume-Hide-sliders-initially.patch
Patch59: 0001-shell-recorder-Restore-cursor-recording.patch
Patch60: 0001-st-bin-Disallow-st_bin_set_child-with-already-parent.patch
Patch61: 0001-layout-Initialize-regions-unconditionally.patch
Patch62: fix-nm-device-settings.patch
# Backport JS invalid access warnings (#1651894, #1663171, #1642482, #1637622)
Patch60: fix-invalid-access-warnings.patch
Patch61: more-spurious-allocation-warnings.patch
Patch62: fix-some-js-warnings.patch
Patch63: fix-double-disposed-backgrounds.patch
Patch70: fix-invalid-access-warnings.patch
Patch71: more-spurious-allocation-warnings.patch
Patch72: fix-some-js-warnings.patch
Patch73: fix-double-disposed-backgrounds.patch
# Backport performance fixes under load (#1820760)
Patch70: 0001-environment-reduce-calls-to-g_time_zone_new_local.patch
Patch71: 0002-environment-Fix-date-conversion.patch
Patch72: 0003-shell-app-system-Monitor-for-icon-theme-changes.patch
Patch73: 0004-global-force-fsync-to-worker-thread-when-saving-stat.patch
Patch74: 0005-app-cache-add-ShellAppCache-for-GAppInfo-caching.patch
Patch75: 0006-js-Always-use-AppSystem-to-lookup-apps.patch
Patch80: 0001-environment-reduce-calls-to-g_time_zone_new_local.patch
Patch81: 0002-environment-Fix-date-conversion.patch
Patch82: 0003-shell-app-system-Monitor-for-icon-theme-changes.patch
Patch83: 0004-global-force-fsync-to-worker-thread-when-saving-stat.patch
Patch84: 0005-app-cache-add-ShellAppCache-for-GAppInfo-caching.patch
Patch85: 0006-js-Always-use-AppSystem-to-lookup-apps.patch
# Stop screen recording on monitor changes (#1705392)
Patch80: 0001-screencast-Stop-recording-when-screen-size-or-resour.patch
Patch90: 0001-screencast-Stop-recording-when-screen-size-or-resour.patch
# Backport OSK fixes (#1871041)
Patch85: osk-fixes.patch
Patch86: 0001-keyboard-Only-enable-keyboard-if-ClutterDeviceManage.patch
Patch95: osk-fixes.patch
Patch96: 0001-keyboard-Only-enable-keyboard-if-ClutterDeviceManage.patch
# suspend/resume fix on nvidia (#1663440)
Patch10001: 0001-background-refresh-after-suspend-on-wayland.patch
@ -280,6 +283,16 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%{_mandir}/man1/%{name}.1.gz
%changelog
* Thu Dec 01 2022 Florian Müllner <fmuellner@redhat.com> - 3.32.2-50
- Fix struts on login screen
Resolves: #2138941
- Fix launching network device settings
Resolves: #1879405
* Mon Nov 21 2022 Florian Müllner <fmuellner@redhat.com> - 3.32.2-49
- Fix assert durin StBin destruction
Resolves: #2130131
* Fri Aug 12 2022 Florian Müllner <fmuellner@redhat.com> - 3.32.2-48
- Fix warnings on double-disposed backgrounds
Resolves: #2116555