Mercurial > ~mikael > mcabber > hg
changeset 2048:349e3c3eb874
Merge main with crew
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Tue, 27 Nov 2012 19:49:50 +0100 |
parents | a60b933d04cc (diff) 27cbd1b7ec2a (current diff) |
children | 0ba755e5dc48 |
files | |
diffstat | 1 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/mcabber/screen.c Tue Nov 27 19:55:45 2012 +0200 +++ b/mcabber/mcabber/screen.c Tue Nov 27 19:49:50 2012 +0100 @@ -2449,14 +2449,24 @@ void scr_roster_up_down(int updown, unsigned int n) { unsigned int i; - - if (updown < 0) { - for (i = 0; i < n; i++) - set_current_buddy(g_list_previous(current_buddy)); - } else { - for (i = 0; i < n; i++) - set_current_buddy(g_list_next(current_buddy)); + GList *new_buddy = current_buddy; + GList *tmp_buddy; + + if (!current_buddy) + return; + + for (i = 0; i < n; i++) { + if (updown < 0) + tmp_buddy = g_list_previous(new_buddy); + else + tmp_buddy = g_list_next(new_buddy); + if (tmp_buddy) + new_buddy = tmp_buddy; } + if (new_buddy == current_buddy) + return; + + set_current_buddy(new_buddy); if (chatmode) { last_activity_buddy = current_buddy; scr_show_buddy_window();