comparison mcabber/src/screen.c @ 512:1744664332cd

Fix "/buffer up"
author Mikael Berthe <mikael@lilotux.net>
date Sun, 13 Nov 2005 17:03:59 +0100
parents 5a2132ba2220
children d40c434fff46
comparison
equal deleted inserted replaced
511:c7cdb9c6d7aa 512:1744664332cd
999 win_entry = scr_SearchWindow(CURRENT_JID); 999 win_entry = scr_SearchWindow(CURRENT_JID);
1000 if (!win_entry) return; 1000 if (!win_entry) return;
1001 1001
1002 if (!nblines) { 1002 if (!nblines) {
1003 // Scroll half a screen (or less) 1003 // Scroll half a screen (or less)
1004 nbl = CHAT_WIN_HEIGHT/2-1; 1004 nbl = CHAT_WIN_HEIGHT/2;
1005 } else { 1005 } else {
1006 nbl = nblines; 1006 nbl = nblines;
1007 } 1007 }
1008 hbuf_top = win_entry->top; 1008 hbuf_top = win_entry->top;
1009 1009
1010 if (updown == -1) { // UP 1010 if (updown == -1) { // UP
1011 if (!hbuf_top) { 1011 if (!hbuf_top) {
1012 hbuf_top = g_list_last(win_entry->hbuf); 1012 hbuf_top = g_list_last(win_entry->hbuf);
1013 if (!nblines && !win_entry->cleared) 1013 if (!win_entry->cleared) {
1014 nbl *= 3; 1014 if (!nblines) nbl = nbl*3 - 1;
1015 else 1015 else nbl += CHAT_WIN_HEIGHT - 1;
1016 } else {
1016 win_entry->cleared = FALSE; 1017 win_entry->cleared = FALSE;
1018 }
1017 } 1019 }
1018 for (n=0 ; hbuf_top && n < nbl && g_list_previous(hbuf_top) ; n++) 1020 for (n=0 ; hbuf_top && n < nbl && g_list_previous(hbuf_top) ; n++)
1019 hbuf_top = g_list_previous(hbuf_top); 1021 hbuf_top = g_list_previous(hbuf_top);
1020 win_entry->top = hbuf_top; 1022 win_entry->top = hbuf_top;
1021 } else { // DOWN 1023 } else { // DOWN