From 5d4220a91f8aa1467302dac2e7a4bfdb7a017009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Mon, 14 Oct 2019 20:44:15 +0200 Subject: core: fix scrolling up in bare mode when switched to bare mode at the top of the buffer (closes #899, issue #978) --- src/gui/curses/gui-curses-chat.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/gui/curses/gui-curses-chat.c') diff --git a/src/gui/curses/gui-curses-chat.c b/src/gui/curses/gui-curses-chat.c index 2904ecd32..024fae90a 100644 --- a/src/gui/curses/gui-curses-chat.c +++ b/src/gui/curses/gui-curses-chat.c @@ -2055,8 +2055,17 @@ gui_chat_draw_bare (struct t_gui_window *window) { /* display from top to bottom (starting with "start_line") */ y = 0; - ptr_line = (window->scroll->start_line) ? - window->scroll->start_line : gui_line_get_first_displayed (window->buffer); + if (window->scroll->start_line) + { + ptr_line = window->scroll->start_line; + window->scroll->first_line_displayed = + (ptr_line == gui_line_get_first_displayed (window->buffer)); + } + else + { + ptr_line = gui_line_get_first_displayed (window->buffer); + window->scroll->first_line_displayed = 1; + } while (ptr_line && (y < gui_term_lines)) { line = gui_chat_get_bare_line (ptr_line); @@ -2093,6 +2102,8 @@ gui_chat_draw_bare (struct t_gui_window *window) free (line); ptr_line = gui_line_get_prev_displayed (ptr_line); } + window->scroll->first_line_displayed = + (ptr_line == gui_line_get_first_displayed (window->buffer)); } /* -- cgit v1.2.3