#6 Fix crashes when locking the screen while certain extensions are active
Merged 2 years ago by fmuellner. Opened 2 years ago by sgallagh.
rpms/ sgallagh/gnome-shell bz1817082  into  master

@@ -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

+ 

file modified
+8 -1
@@ -1,6 +1,6 @@ 

  Name:           gnome-shell

  Version:        3.37.1

- Release:        2%{?dist}

+ Release:        3%{?dist}

  Summary:        Window management and application launching for GNOME

  

  License:        GPLv2+
@@ -22,6 +22,9 @@ 

  # https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/e08a4acd

  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 gnome_desktop_version 3.35.91

  %define glib2_version 2.56.0
@@ -218,6 +221,10 @@ 

  %{_mandir}/man1/gnome-shell.1*

  

  %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

  - Fix panel to show input methods (MR #1235)

  

Resolves: rhbz#1817082

Signed-off-by: Stephen Gallagher sgallagh@redhat.com

Locking the screen while running the gTile extension crashes every time, which is discouraging the best practice of locking my screen when I am not in front of it.

Pull-Request has been merged by fmuellner

2 years ago