Mercurial > ~mikael > mcabber > hg
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 |