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 d43f27e228
commit 808de1bcd4
No known key found for this signature in database
2 changed files with 2 additions and 1 deletions

View file

@ -101,6 +101,7 @@ var 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

@ -184,7 +184,7 @@ var FdoNotificationDaemon = 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);