Mercurial > hg
changeset 84:134fe2567f07
[/trunk] Changeset 98 by mikael
* Roster scrolling.
author | mikael |
---|---|
date | Sun, 17 Apr 2005 19:15:51 +0000 |
parents | a95e2fc9ea6b |
children | 19f57e681252 |
files | mcabber/src/screen.c |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/screen.c Sun Apr 17 18:16:19 2005 +0000 +++ b/mcabber/src/screen.c Sun Apr 17 19:15:51 2005 +0000 @@ -433,12 +433,21 @@ return; } - // TODO: update offset if necessary + // Update offset if necessary + i = g_list_position(buddylist, current_buddy); + if (i == -1) { // This is bad + scr_LogPrint("Doh! Can't find current selected buddy!!"); + return; + } else if (i < offset) { + offset = i; + } else if (i+1 > offset + maxy) { + offset = i + 1 - maxy; + } buddy = buddylist; rOffset = offset; - for (i=0; i<maxy && buddy; i++, buddy = g_list_next(buddy)) { + for (i=0; i<maxy && buddy; buddy = g_list_next(buddy)) { char status = '?'; char pending = ' '; @@ -470,6 +479,8 @@ // TODO: status is meaningless for groups: if (buddy_gettype(BUDDATA(buddy)) & ROSTER_TYPE_GROUP) status='G'; mvwprintw(rosterWnd, i, 0, " %c[%c] %s", pending, status, name); + + i++; } update_panels();