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>
This commit is contained in:
parent
ae053f954f
commit
8d8eba000f
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user