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>
(cherry picked from commit 9af81e44bc)
This commit is contained in:
Florian Müllner 2024-02-20 19:46:19 +01:00
parent 8b07e8e187
commit 29c51d098f
No known key found for this signature in database
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

@ -178,7 +178,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);