about summary refs log tree commit diff stats
path: root/src/profanity.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/profanity.c')
-rw-r--r--src/profanity.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/profanity.c b/src/profanity.c
index e53ac176..b28eae20 100644
--- a/src/profanity.c
+++ b/src/profanity.c
@@ -46,6 +46,7 @@
 
 #include "profanity.h"
 #include "chat_session.h"
+#include "chat_state.h"
 #include "config/accounts.h"
 #include "config/preferences.h"
 #include "config/theme.h"
@@ -75,7 +76,7 @@ prof_run(const int disable_tls, char *log_level, char *account_name)
 {
     _init(disable_tls, log_level);
     log_info("Starting main event loop");
-    ui_input_nonblocking();
+    ui_input_nonblocking(TRUE);
     GTimer *timer = g_timer_new();
     gboolean cmd_result = TRUE;
     jabber_conn_status_t conn_status = jabber_get_connection_status();
@@ -142,7 +143,8 @@ prof_handle_idle(void)
 
         while (curr != NULL) {
             char *barejid = curr->data;
-            chat_session_on_inactivity(barejid);
+            ProfChatWin *chatwin = wins_get_chat(barejid);
+            chat_state_handle_idle(chatwin->barejid, chatwin->state);
             curr = g_slist_next(curr);
         }
 
@@ -160,7 +162,7 @@ prof_handle_activity(void)
 
     if ((status == JABBER_CONNECTED) && (win_type == WIN_CHAT)) {
         ProfChatWin *chatwin = wins_get_current_chat();
-        chat_session_on_activity(chatwin->barejid);
+        chat_state_handle_typing(chatwin->barejid, chatwin->state);
     }
 }
 
@@ -290,7 +292,13 @@ _init(const int disable_tls, char *log_level)
 static void
 _shutdown(void)
 {
-    ui_clear_win_title();
+    if (prefs_get_boolean(PREF_TITLEBAR_SHOW)) {
+        if (prefs_get_boolean(PREF_TITLEBAR_GOODBYE)) {
+            ui_goodbye_title();
+        } else {
+            ui_clear_win_title();
+        }
+    }
     ui_close_all_wins();
     jabber_disconnect();
     jabber_shutdown();