diff options
Diffstat (limited to 'libdino/src')
| -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; } |
