From 8cc4de5bb376133311ab92338ec8decc5ea25ac2 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 1 Nov 2023 17:23:53 +1100 Subject: Always ensure we do not scroll past the last line An assert fails from time to time after reloading fifo buffers due to being scrolled past the last line of the buffer. A repro case was not found but this should fix the underlying issue. --- src/window.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/window.cc b/src/window.cc index 41e34767..1f444211 100644 --- a/src/window.cc +++ b/src/window.cc @@ -209,8 +209,9 @@ DisplaySetup Window::compute_display_setup(const Context& context) const if (cursor.line - offset.line < win_pos.line) win_pos.line = std::max(0_line, cursor.line - offset.line); if (cursor.line + offset.line >= win_pos.line + m_dimensions.line) - win_pos.line = std::min(buffer().line_count()-1, cursor.line + offset.line - m_dimensions.line + 1); + win_pos.line = cursor.line + offset.line - m_dimensions.line + 1; } + win_pos.line = std::min(win_pos.line, buffer().line_count()-1); DisplaySetup setup{ win_pos.line, -- cgit v1.2.3