[gnome-shell] dbusServices: Allow replacement



commit 8d8eba000fa54865ba2635328b6aed8a151686a2
Author: Florian Müllner <fmuellner gnome org>
Date:   Thu Feb 3 01:57:46 2022 +0100

    dbusServices: Allow replacement
    
    The REPLACE flag we currently pass is useless, as replacing the service
    is disallowed when not started with the ALLOW_REPLACEMENT flag.
    
    Fix this by adopting a more standard pattern where replacement is always
    allowed, but only actually requested when `--replace` is passed on the
    command line.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2152>

 js/dbusServices/dbusService.js | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/js/dbusServices/dbusService.js b/js/dbusServices/dbusService.js
index 71b1e35d7e..3e2fde06af 100644
--- a/js/dbusServices/dbusService.js
+++ b/js/dbusServices/dbusService.js
@@ -6,6 +6,8 @@ const Signals = imports.signals;
 
 const IDLE_SHUTDOWN_TIME = 2; // s
 
+const { programArgs } = imports.system;
+
 var ServiceImplementation = class {
     constructor(info, objectPath) {
         this._objectPath = objectPath;
@@ -167,9 +169,13 @@ var DBusService = class {
 
         this._service.register();
 
+        let flags = Gio.BusNameOwnerFlags.ALLOW_REPLACEMENT;
+        if (programArgs.includes('--replace'))
+            flags |= Gio.BusNameOwnerFlags.REPLACE;
+
         Gio.DBus.own_name(Gio.BusType.SESSION,
             this._name,
-            Gio.BusNameOwnerFlags.REPLACE,
+            flags,
             () => this._service.export(),
             null,
             () => this._loop.quit());


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