diff options
author | Aylur <[email protected]> | 2024-06-20 16:38:02 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-06-20 16:38:02 +0200 |
commit | 9812a21318abc3c508c5a6152336578d621a1032 (patch) | |
tree | b7641d9a1845c966204deea8c65f55d957da6d5f /src/daemon.vala | |
parent | 758f1b3e4c767a9345a81b0d60873e57264d497f (diff) |
feat: notified replaced parameter
Diffstat (limited to 'src/daemon.vala')
-rw-r--r-- | src/daemon.vala | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/daemon.vala b/src/daemon.vala index 69212ef..6b11204 100644 --- a/src/daemon.vala +++ b/src/daemon.vala @@ -22,12 +22,11 @@ internal class Daemon : Object { public bool ignore_timeout { get; set; } public bool dont_disturb { get; set; } - public signal void notified(uint id); + public signal void notified(uint id, bool replaced); public signal void resolved(uint id, ClosedReason reason); public signal void action_invoked(uint id, string action); // emitting an event from proxy doesn't seem to work - public void emit_notified(uint id) { notified(id); } public void emit_resolved(uint id, ClosedReason reason) { resolved(id, reason); } public void emit_action_invoked(uint id, string action) { action_invoked(id, action); } @@ -110,7 +109,7 @@ internal class Daemon : Object { var id = replaces_id > 0 ? replaces_id : n_id++; - add_notification(new Notification( + var replaced = add_notification(new Notification( app_name, id, app_icon, summary, body, actions, hints, expire_timeout )); @@ -121,17 +120,18 @@ internal class Daemon : Object { }, Priority.DEFAULT); } - if (!dont_disturb) - notified(id); + notified(id, replaced); cache(); return id; } - private void add_notification(Notification n) { + private bool add_notification(Notification n) { n.dismissed.connect(() => resolved(n.id, ClosedReason.DISMISSED_BY_USER)); n.invoked.connect((action) => action_invoked(n.id, action)); + var replaced = notifs.contains(n.id); notifs.set(n.id, n); + return replaced; } private void cache() { |