[gnome-shell] main: Don't override DesktopAppInfo desktop if already GNOME



commit a0def239408b389020c8d2dc634ab0250e2d9721
Author: Marco Trevisan (Treviño) <mail 3v1n0 net>
Date:   Tue Mar 31 20:13:46 2020 +0200

    main: Don't override DesktopAppInfo desktop if already GNOME
    
    During the shell initialization we call the (deprecated) function to
    override the Desktop environment in Gio DesktopAppInfo to make sure that
    applications are correctly shown (as per commit b2fbf5a2), however this
    might break the cases in which $XDG_CURRENT_DESKTOP is already set and
    contains GNOME (given that is now a list).
    
    In Ubuntu this is in fact set to: ubuntu:GNOME.
    Now, if an application contains NotShowIn=ubuntu, the key will be ignored by
    the shell, and the application is still listed everywhere.
    
    So, override the DesktopAppInfo desktop environment only in the case that
    the current desktop is not already GNOME.
    
    At the current date I think we could just safely get rid of this override at
    all, but there could be still cases where it still might be useful, like when
    running as nested in some other environment, so keeping it.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1156

 js/ui/main.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index ebf9b333a8..bb579c3474 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -132,7 +132,9 @@ function start() {
         notifyError(msg, detail);
     });
 
-    Gio.DesktopAppInfo.set_desktop_env('GNOME');
+    let currentDesktop = GLib.getenv('XDG_CURRENT_DESKTOP');
+    if (!currentDesktop || !currentDesktop.split(':').includes('GNOME'))
+        Gio.DesktopAppInfo.set_desktop_env('GNOME');
 
     sessionMode = new SessionMode.SessionMode();
     sessionMode.connect('updated', _sessionUpdated);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]