aboutsummaryrefslogtreecommitdiff
path: root/libdino/src
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2026-01-08 10:23:48 +0100
committerMarvin W <git@larma.de>2026-02-14 14:32:50 +0100
commit3b274a609643632b055630f8e75d3393fbfa46c3 (patch)
tree5e2b1aaa7011bf1f28320e572ad9dfb98a59b01a /libdino/src
parenta4e696261fb2e15fc4e883d10b074f107f8f40b8 (diff)
Notifications: Fix dbus timeout handling
Diffstat (limited to 'libdino/src')
-rw-r--r--libdino/src/dbus/notifications.vala14
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;
}