changeset 123:1bdf882bed98

[/trunk] Changeset 136 by mikael * Fix a display problem when there is only one buddy connected and hide_offline is set and this buddy goes offline.
author mikael
date Tue, 26 Apr 2005 10:11:57 +0000
parents 235fdd5bfd5d
children 6d2122c003c4
files mcabber/src/TODO.txt mcabber/src/screen.c
diffstat 2 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/TODO.txt	Tue Apr 26 09:37:05 2005 +0000
+++ b/mcabber/src/TODO.txt	Tue Apr 26 10:11:57 2005 +0000
@@ -4,9 +4,7 @@
 * Should not stay on buddy buffer when one moves to a group
 * Pending message not displayed if buddy outside Contact window
 * We should rebuild the buddy list when receiving a message from an offline
-  buddy.
-* Bad display when there is only one buddy connected and hide_offline is set
-  and this buddy goes offline.
+  buddy (or invisible/just hidden).
 
 
 TODO:
--- a/mcabber/src/screen.c	Tue Apr 26 09:37:05 2005 +0000
+++ b/mcabber/src/screen.c	Tue Apr 26 10:11:57 2005 +0000
@@ -446,6 +446,9 @@
   int i, n;
   int rOffset;
 
+  // We can reset update_roster
+  update_roster = FALSE;
+
   getmaxyx(rosterWnd, maxy, maxx);
   maxx --;  // last char is for vertical border
   name[ROSTER_WIDTH-7] = 0;
@@ -461,6 +464,8 @@
   // Leave now if buddylist is empty
   if (!buddylist) {
     offset = 0;
+    update_panels();
+    doupdate();
     return;
   }
 
@@ -468,6 +473,8 @@
   i = g_list_position(buddylist, current_buddy);
   if (i == -1) { // This is bad
     scr_LogPrint("Doh! Can't find current selected buddy!!");
+    update_panels();
+    doupdate();
     return;
   } else if (i < offset) {
     offset = i;
@@ -516,7 +523,6 @@
 
   update_panels();
   doupdate();
-  update_roster = FALSE;
 }
 
 void scr_WriteMessage(const char *jid, const char *text, char *prefix)