From 451bfacaf537b05d58ae6c49eec909184edf84ea Mon Sep 17 00:00:00 2001 From: Takase <20792268+takase1121@users.noreply.github.com> Date: Tue, 3 Dec 2024 06:45:27 +0800 Subject: [PATCH] docview: prevent overscroll when DocView size is less than lh * 2 (#1971) --- data/core/docview.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/core/docview.lua b/data/core/docview.lua index 75a7b7b..2c95ea3 100644 --- a/data/core/docview.lua +++ b/data/core/docview.lua @@ -259,7 +259,8 @@ function DocView:scroll_to_make_visible(line, col) local _, ly = self:get_line_screen_position(line, col) local lh = self:get_line_height() local _, _, _, scroll_h = self.h_scrollbar:get_track_rect() - self.scroll.to.y = common.clamp(self.scroll.to.y, ly - oy - self.size.y + scroll_h + lh * 2, ly - oy - lh) + local overscroll = math.min(lh * 2, self.size.y) -- always show the previous / next line when possible + self.scroll.to.y = common.clamp(self.scroll.to.y, ly - oy - self.size.y + scroll_h + overscroll, ly - oy - lh) local gw = self:get_gutter_width() local xoffset = self:get_col_x_offset(line, col) local xmargin = 3 * self:get_font():get_width(' ')