diff options
| author | Marvin W <git@larma.de> | 2026-01-08 10:23:48 +0100 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2026-02-14 14:32:50 +0100 |
| commit | 3b274a609643632b055630f8e75d3393fbfa46c3 (patch) | |
| tree | 5e2b1aaa7011bf1f28320e572ad9dfb98a59b01a /libdino/src/dbus | |
| parent | a4e696261fb2e15fc4e883d10b074f107f8f40b8 (diff) | |
Notifications: Fix dbus timeout handling
Diffstat (limited to 'libdino/src/dbus')
| -rw-r--r-- | libdino/src/dbus/notifications.vala | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libdino/src/dbus/notifications.vala b/libdino/src/dbus/notifications.vala index 2a9deb64..400d1da0 100644 --- a/libdino/src/dbus/notifications.vala +++ b/libdino/src/dbus/notifications.vala @@ -23,10 +23,14 @@ namespace Dino { DBusNotifications? ret = null; Cancellable cancellable = new Cancellable(); - uint timeout_handle_id = Timeout.add_seconds(10, () => { - warning("Timeout waiting for org.freedesktop.Notifications DBus instance"); - cancellable.cancel(); - Idle.add(get_notifications_dbus.callback); + uint timeout_handle_id = 0; + timeout_handle_id = Timeout.add_seconds(10, () => { + if (timeout_handle_id != 0) { + warning("Timeout waiting for org.freedesktop.Notifications DBus instance"); + timeout_handle_id = 0; + cancellable.cancel(); + Idle.add(get_notifications_dbus.callback); + } return false; }); @@ -38,12 +42,12 @@ namespace Dino { } if (timeout_handle_id != 0) { Source.remove(timeout_handle_id); + timeout_handle_id = 0; Idle.add(get_notifications_dbus.callback); } }); yield; - timeout_handle_id = 0; return ret; } |
