Merge remote-tracking branch 'Dav1d23/master'

Conflicts:
	Makefile.am
	install-all.sh
This commit is contained in:
James Booth
2016-04-11 00:23:36 +01:00
10 changed files with 285 additions and 9 deletions

View File

@@ -37,6 +37,10 @@
#include "gitversion.h"
#endif
#ifdef HAVE_GTK
#include <gtk/gtk.h>
#include "tray.h"
#endif
#include <locale.h>
#include <signal.h>
#include <stdlib.h>
@@ -92,10 +96,21 @@ char *saved_status;
static gboolean cont = TRUE;
static gboolean force_quit = FALSE;
#ifdef HAVE_GTK
static gboolean gtk_ready = FALSE;
#endif
void
prof_run(char *log_level, char *account_name)
{
#ifdef HAVE_GTK
gtk_ready = gtk_init_check(0, NULL);
log_debug("Env is GTK-ready: %s", gtk_ready ? "true" : "false");
if (gtk_ready) {
gtk_init(0, NULL);
gtk_main_iteration_do(FALSE);
}
#endif
_init(log_level);
plugins_on_start();
_connect_default(account_name);
@@ -130,6 +145,11 @@ prof_run(char *log_level, char *account_name)
jabber_process_events(10);
iq_autoping_check();
ui_update();
#ifdef HAVE_GTK
if (gtk_ready) {
gtk_main_iteration_do(FALSE);
}
#endif
}
}
@@ -352,6 +372,12 @@ _init(char *log_level)
#endif
atexit(_shutdown);
plugins_init();
#ifdef HAVE_GTK
if (gtk_ready) {
log_debug("Building GTK icon");
create_tray();
}
#endif
inp_nonblocking(TRUE);
}
@@ -370,7 +396,11 @@ _shutdown(void)
if (conn_status == JABBER_CONNECTED) {
cl_ev_disconnect();
}
#ifdef HAVE_GTK
if (gtk_ready) {
destroy_tray();
}
#endif
jabber_shutdown();
plugins_on_shutdown();
muc_close();
@@ -404,6 +434,8 @@ _create_directories(void)
GString *themes_dir = g_string_new(xdg_config);
g_string_append(themes_dir, "/profanity/themes");
GString *icons_dir = g_string_new(xdg_config);
g_string_append(icons_dir, "/profanity/icons");
GString *chatlogs_dir = g_string_new(xdg_data);
g_string_append(chatlogs_dir, "/profanity/chatlogs");
GString *logs_dir = g_string_new(xdg_data);
@@ -414,6 +446,9 @@ _create_directories(void)
if (!mkdir_recursive(themes_dir->str)) {
log_error("Error while creating directory %s", themes_dir->str);
}
if (!mkdir_recursive(icons_dir->str)) {
log_error("Error while creating directory %s", icons_dir->str);
}
if (!mkdir_recursive(chatlogs_dir->str)) {
log_error("Error while creating directory %s", chatlogs_dir->str);
}
@@ -425,6 +460,7 @@ _create_directories(void)
}
g_string_free(themes_dir, TRUE);
g_string_free(icons_dir, TRUE);
g_string_free(chatlogs_dir, TRUE);
g_string_free(logs_dir, TRUE);
g_string_free(plugins_dir, TRUE);