From 3b274a609643632b055630f8e75d3393fbfa46c3 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Thu, 8 Jan 2026 10:23:48 +0100 Subject: Notifications: Fix dbus timeout handling --- libdino/src/dbus/notifications.vala | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'libdino/src/dbus/notifications.vala') 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; } -- cgit v1.3