diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2014-03-20 13:23:43 -0500 |
---|---|---|
committer | Charles Kerr <charles.kerr@canonical.com> | 2014-03-20 13:23:43 -0500 |
commit | 821f2e1a3fe0e7020bd8dcb1f4fbf8e5c4398314 (patch) | |
tree | d5a3ebbb8de8f20d7ac412a0c5d7f19f414f07aa /src | |
parent | 75729a4dda25141e860128ef3547c5946f7c4a5d (diff) | |
download | ayatana-indicator-datetime-821f2e1a3fe0e7020bd8dcb1f4fbf8e5c4398314.tar.gz ayatana-indicator-datetime-821f2e1a3fe0e7020bd8dcb1f4fbf8e5c4398314.tar.bz2 ayatana-indicator-datetime-821f2e1a3fe0e7020bd8dcb1f4fbf8e5c4398314.zip |
Don't play the alarm sound if we can't talk to libnotify. Otherwise we won't know when the notification's been closed to turn off the sound, and the sound will play forever.
Diffstat (limited to 'src')
-rw-r--r-- | src/snap.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/snap.cpp b/src/snap.cpp index 5cf6063..899581b 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -222,7 +222,7 @@ NotifyMode get_notify_mode() return mode; } -void show_notification (SnapData* data, NotifyMode mode) +bool show_notification (SnapData* data, NotifyMode mode) { const Appointment& appointment = data->appointment; @@ -242,16 +242,19 @@ void show_notification (SnapData* data, NotifyMode mode) } g_object_set_data_full(G_OBJECT(nn), "snap-data", data, snap_data_destroy_notify); + bool shown = true; GError * error = nullptr; notify_notification_show(nn, &error); if (error != NULL) { - g_warning("Unable to show snap decision for '%s': %s", body.c_str(), error->message); + g_critical("Unable to show snap decision for '%s': %s", body.c_str(), error->message); g_error_free(error); data->show(data->appointment); + shown = false; } g_free(title); + return shown; } /** @@ -274,8 +277,8 @@ void notify(const Appointment& appointment, break; default: - show_notification(data, NOTIFY_MODE_SNAP); - play_alarm_sound(); + if (show_notification(data, NOTIFY_MODE_SNAP)) + play_alarm_sound(); break; } } |