aboutsummaryrefslogtreecommitdiff
path: root/src
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 /src
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.
Diffstat (limited to 'src')
-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;
}
}