Fix crashes when locking the screen while certain extensions are active
Resolves: rhbz#1817082 Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
This commit is contained in:
parent
657bcd8386
commit
900baaef0a
@ -0,0 +1,51 @@
|
|||||||
|
From 6d5e93b00b5b4ce5315276e071a98c8db5ff6463 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Wed, 13 May 2020 20:10:56 +0200
|
||||||
|
Subject: [PATCH] extensionSystem: Disable extension before unloading
|
||||||
|
stylesheet
|
||||||
|
|
||||||
|
Removing a stylesheet from the theme will trigger a style update. There's
|
||||||
|
little point in updating the extension actors that are about to be destroyed
|
||||||
|
(hopefully), so call the extension's disable() function first.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757
|
||||||
|
---
|
||||||
|
js/ui/extensionSystem.js | 12 ++++++------
|
||||||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js
|
||||||
|
index 1a34f19e9e384b1d352207ea78eba9e7e1f80ba3..5a50b473ac2bdb25ec1a7f47cbd2d00ebf889800 100644
|
||||||
|
--- a/js/ui/extensionSystem.js
|
||||||
|
+++ b/js/ui/extensionSystem.js
|
||||||
|
@@ -100,22 +100,22 @@ var ExtensionManager = class {
|
||||||
|
} catch (e) {
|
||||||
|
this.logExtensionError(otherUuid, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ try {
|
||||||
|
+ extension.stateObj.disable();
|
||||||
|
+ } catch (e) {
|
||||||
|
+ this.logExtensionError(uuid, e);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (extension.stylesheet) {
|
||||||
|
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
|
||||||
|
theme.unload_stylesheet(extension.stylesheet);
|
||||||
|
delete extension.stylesheet;
|
||||||
|
}
|
||||||
|
|
||||||
|
- try {
|
||||||
|
- extension.stateObj.disable();
|
||||||
|
- } catch (e) {
|
||||||
|
- this.logExtensionError(uuid, e);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
for (let i = 0; i < order.length; i++) {
|
||||||
|
let otherUuid = order[i];
|
||||||
|
try {
|
||||||
|
this.lookup(otherUuid).stateObj.enable();
|
||||||
|
} catch (e) {
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: gnome-shell
|
Name: gnome-shell
|
||||||
Version: 3.37.1
|
Version: 3.37.1
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Window management and application launching for GNOME
|
Summary: Window management and application launching for GNOME
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -22,6 +22,9 @@ Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
|
|||||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/e08a4acd
|
# https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/e08a4acd
|
||||||
Patch4: 0001-ibusManager-Fix-the-panel-after-porting-to-Promises.patch
|
Patch4: 0001-ibusManager-Fix-the-panel-after-porting-to-Promises.patch
|
||||||
|
|
||||||
|
# Avoid crash in extensions
|
||||||
|
Patch5: 0001-extensionSystem-Disable-extension-before-unloading-s.patch
|
||||||
|
|
||||||
%define eds_version 3.33.1
|
%define eds_version 3.33.1
|
||||||
%define gnome_desktop_version 3.35.91
|
%define gnome_desktop_version 3.35.91
|
||||||
%define glib2_version 2.56.0
|
%define glib2_version 2.56.0
|
||||||
@ -218,6 +221,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
|||||||
%{_mandir}/man1/gnome-shell.1*
|
%{_mandir}/man1/gnome-shell.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed May 20 2020 Stephen Gallagher <sgallagh@redhat.com> - 3.37.1-3
|
||||||
|
- Fix crashes when locking the screen while certain extensions are active
|
||||||
|
- Resolves: rhbz#1817082
|
||||||
|
|
||||||
* Mon May 04 2020 Adam Williamson <awilliam@redhat.com> - 3.37.1-2
|
* Mon May 04 2020 Adam Williamson <awilliam@redhat.com> - 3.37.1-2
|
||||||
- Fix panel to show input methods (MR #1235)
|
- Fix panel to show input methods (MR #1235)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user