aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Kerr <charles.kerr@canonical.com>2014-03-20 13:23:43 -0500
committerCharles Kerr <charles.kerr@canonical.com>2014-03-20 13:23:43 -0500
commit821f2e1a3fe0e7020bd8dcb1f4fbf8e5c4398314 (patch)
treed5a3ebbb8de8f20d7ac412a0c5d7f19f414f07aa
parent75729a4dda25141e860128ef3547c5946f7c4a5d (diff)
downloadayatana-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.
-rw-r--r--src/snap.cpp11
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;
}
}