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 IDLE_SHUTDOWN_TIME = 2; // s
|
||||||
|
|
||||||
|
const { programArgs } = imports.system;
|
||||||
|
|
||||||
var ServiceImplementation = class {
|
var ServiceImplementation = class {
|
||||||
constructor(info, objectPath) {
|
constructor(info, objectPath) {
|
||||||
this._objectPath = objectPath;
|
this._objectPath = objectPath;
|
||||||
@ -167,9 +169,13 @@ var DBusService = class {
|
|||||||
|
|
||||||
this._service.register();
|
this._service.register();
|
||||||
|
|
||||||
|
let flags = Gio.BusNameOwnerFlags.ALLOW_REPLACEMENT;
|
||||||
|
if (programArgs.includes('--replace'))
|
||||||
|
flags |= Gio.BusNameOwnerFlags.REPLACE;
|
||||||
|
|
||||||
Gio.DBus.own_name(Gio.BusType.SESSION,
|
Gio.DBus.own_name(Gio.BusType.SESSION,
|
||||||
this._name,
|
this._name,
|
||||||
Gio.BusNameOwnerFlags.REPLACE,
|
flags,
|
||||||
() => this._service.export(),
|
() => this._service.export(),
|
||||||
null,
|
null,
|
||||||
() => this._loop.quit());
|
() => this._loop.quit());
|
||||||
|
Loading…
Reference in New Issue
Block a user