diff options
author | James Booth <boothj5@gmail.com> | 2014-06-29 19:19:08 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2014-06-29 19:19:08 +0100 |
commit | 4279735dd717eb9956df80df750352e4303f2293 (patch) | |
tree | 8f4a02152fc71f1df244b4053ba6af1aab73f1ab | |
parent | 03ffe57063c34d2e4b79765a9cf84d0e7e3b4c4c (diff) | |
download | profani-tty-4279735dd717eb9956df80df750352e4303f2293.tar.gz |
Reinitialise libnotify per notification
Fixes issue on Xfce4 where notification are not being sent after a period of time. Issue #370
-rw-r--r-- | src/ui/core.c | 1 | ||||
-rw-r--r-- | src/ui/notifier.c | 24 | ||||
-rw-r--r-- | src/ui/ui.h | 1 |
3 files changed, 13 insertions, 13 deletions
diff --git a/src/ui/core.c b/src/ui/core.c index 262eb4d3..996a0c7a 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -94,7 +94,6 @@ _ui_init(void) create_input_window(); wins_init(); cons_about(); - notifier_init(); #ifdef HAVE_LIBXSS display = XOpenDisplay(0); #endif diff --git a/src/ui/notifier.c b/src/ui/notifier.c index 04eb0130..ba1dbbc4 100644 --- a/src/ui/notifier.c +++ b/src/ui/notifier.c @@ -41,14 +41,6 @@ static void _notify(const char * const message, int timeout, const char * const category); static void -_notifier_init(void) -{ -#ifdef HAVE_LIBNOTIFY - notify_init("Profanity"); -#endif -} - -static void _notifier_uninit(void) { #ifdef HAVE_LIBNOTIFY @@ -171,6 +163,15 @@ _notify(const char * const message, int timeout, const char * const category) { #ifdef HAVE_LIBNOTIFY + log_debug("Attempting notification: %s", message); + if (notify_is_initted()) { + log_debug("Reinitialising libnotify"); + notify_uninit(); + notify_init("Profanity"); + } else { + log_debug("Initialising libnotify"); + notify_init("Profanity"); + } if (notify_is_initted()) { NotifyNotification *notification; notification = notify_notification_new("Profanity", message, NULL); @@ -185,9 +186,11 @@ _notify(const char * const message, int timeout, log_error("Error sending desktop notification:"); log_error(" -> Message : %s", message); log_error(" -> Error : %s", error->message); - } + } else { + log_debug("Notification sent."); + } } else { - log_error("Libnotify initialisation error."); + log_error("Libnotify not initialised."); } #endif #ifdef PLATFORM_CYGWIN @@ -244,7 +247,6 @@ _notify(const char * const message, int timeout, void notifier_init_module(void) { - notifier_init = _notifier_init; notifier_uninit = _notifier_uninit; notify_typing = _notify_typing; notify_invite = _notify_invite; diff --git a/src/ui/ui.h b/src/ui/ui.h index 4021527d..2ae4e68e 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -259,7 +259,6 @@ void (*cons_show_contact_online)(PContact contact, Resource *resource, GDateTime void (*cons_show_contact_offline)(PContact contact, char *resource, char *status); // desktop notifier actions -void (*notifier_init)(void); void (*notifier_uninit)(void); void (*notify_typing)(const char * const handle); |