[gnome-shell/wip/gdm-register-session] main: Call GDM's RegisterSession()



commit dff20423a8d75af491009a8a2480a054a7bad768
Author: Iain Lane <iainl gnome org>
Date:   Thu May 2 10:49:12 2019 +0100

    main: Call GDM's RegisterSession()
    
    So that it can know if we started up properly and use that to (e.g.)
    kill its greeter.

 js/ui/main.js | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index d9f287cd9..f4678e0ad 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -233,6 +233,25 @@ function _initializeUI() {
                                         ['MESSAGE_ID=' + GNOMESHELL_STARTED_MESSAGE_ID]);
         }
 
+        log("Registering session with GDM");
+        Gio.DBus.system.call('org.gnome.DisplayManager',
+                             '/org/gnome/DisplayManager/Manager',
+                             'org.gnome.DisplayManager.Manager',
+                             'RegisterSession',
+                             GLib.Variant.new('(a{sv})', [{}]), null,
+                             Gio.DBusCallFlags.NONE, -1, null,
+            (source, result) => {
+                try {
+                    source.call_finish(result);
+                } catch (e) {
+                    if (!e.matches(Gio.DBusError, Gio.DBusError.UNKNOWN_METHOD))
+                        log(`Error registering session with GDM: ${e.message}`);
+                    else
+                        log("Not calling RegisterSession(): method not exported, GDM too old?");
+                }
+            }
+        );
+
         let perfModuleName = GLib.getenv("SHELL_PERF_MODULE");
         if (perfModuleName) {
             let perfOutput = GLib.getenv("SHELL_PERF_OUTPUT");


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