about summary refs log tree commit diff stats
path: root/src/ui/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/core.c')
-rw-r--r--src/ui/core.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/ui/core.c b/src/ui/core.c
index 091ed0eb..f72ec732 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -369,7 +369,7 @@ _ui_incoming_msg(const char * const barejid, const char * const message, GTimeVa
             flash();
         }
 
-        window->unread++;
+        chatwin->unread++;
         if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) {
             _win_show_history(num, barejid);
         }
@@ -438,7 +438,7 @@ _ui_incoming_private_msg(const char * const fulljid, const char * const message,
             flash();
         }
 
-        window->unread++;
+        privatewin->unread++;
         if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) {
             _win_show_history(num, fulljid);
         }
@@ -854,8 +854,6 @@ _ui_switch_win(const int i)
 
         wins_set_current_by_num(i);
 
-        new_current->unread = 0;
-
         if (i == 1) {
             title_bar_console();
             status_bar_current(1);
@@ -889,8 +887,6 @@ _ui_previous_win(void)
     int i = wins_get_num(new_current);
     wins_set_current_by_num(i);
 
-    new_current->unread = 0;
-
     if (i == 1) {
         title_bar_console();
         status_bar_current(1);
@@ -920,8 +916,6 @@ _ui_next_win(void)
     int i = wins_get_num(new_current);
     wins_set_current_by_num(i);
 
-    new_current->unread = 0;
-
     if (i == 1) {
         title_bar_console();
         status_bar_current(1);
@@ -1840,10 +1834,11 @@ static void
 _ui_room_message(const char * const roomjid, const char * const nick,
     const char * const message)
 {
-    ProfWin *window = (ProfWin*)wins_get_muc(roomjid);
-    if (window == NULL) {
+    ProfMucWin *mucwin = wins_get_muc(roomjid);
+    if (mucwin == NULL) {
         log_error("Room message received from %s, but no window open for %s", nick, roomjid);
     } else {
+        ProfWin *window = (ProfWin*) mucwin;
         int num = wins_get_num(window);
         char *my_nick = muc_nick(roomjid);
 
@@ -1872,7 +1867,7 @@ _ui_room_message(const char * const roomjid, const char * const nick,
                 }
             }
 
-            window->unread++;
+            mucwin->unread++;
         }
 
         int ui_index = num;
@@ -2228,7 +2223,7 @@ _ui_win_unread(int index)
 {
     ProfWin *window = wins_get_by_num(index);
     if (window != NULL) {
-        return window->unread;
+        return win_unread(window);
     } else {
         return 0;
     }