1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-01-03 14:57:42 -05:00

Reinitialise libnotify per notification

Fixes issue on Xfce4 where notification are not being sent after a period of time.
Issue #370
This commit is contained in:
James Booth 2014-06-29 19:19:08 +01:00
parent 03ffe57063
commit 4279735dd7
3 changed files with 13 additions and 13 deletions

View File

@ -94,7 +94,6 @@ _ui_init(void)
create_input_window();
wins_init();
cons_about();
notifier_init();
#ifdef HAVE_LIBXSS
display = XOpenDisplay(0);
#endif

View File

@ -40,14 +40,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)
{
@ -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;

View File

@ -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);