notificationDaemon: Fix auto-closing FDO notifications

We auto-close FDO notifications when the sender leaves the bus,
given that the protocol was created without persistency in mind
and any action will become invalid.

However that broke when moving the public-facing implementation
into a separate service, as we now track the (always running)
service instead of the original sender.

Fix that by forwarding the sender to the internal implementation
via a private hint, just like we already do for the PID.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3204>
This commit is contained in:
Florian Müllner 2024-02-20 19:46:19 +01:00
parent f0b1cf5f8d
commit 9af81e44bc
2 changed files with 2 additions and 1 deletions

View File

@ -101,6 +101,7 @@ export const NotificationDaemon = class extends ServiceImplementation {
params[6] = {
...hints,
'x-shell-sender-pid': new GLib.Variant('u', pid),
'x-shell-sender': new GLib.Variant('s', sender),
};
try {

View File

@ -161,7 +161,7 @@ class FdoNotificationDaemon {
}
this._notifications[id] = ndata;
let sender = invocation.get_sender();
const sender = hints['x-shell-sender'];
const pid = hints['x-shell-sender-pid'];
let source = this._getSource(appName, pid, ndata, sender, null);