From 9dffba68431c70d84a0951519540ec8e7802ecbc Mon Sep 17 00:00:00 2001 From: Myk Taylor Date: Sat, 20 May 2023 04:38:03 -0700 Subject: [PATCH] amend #2914 so lists don't jump around on resize --- library/lua/gui/widgets.lua | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/library/lua/gui/widgets.lua b/library/lua/gui/widgets.lua index 26c949805..5c8094d28 100644 --- a/library/lua/gui/widgets.lua +++ b/library/lua/gui/widgets.lua @@ -1664,9 +1664,7 @@ function List:setChoices(choices, selected) -- Check if page_top needs to be adjusted if #self.choices - self.page_size < 0 then self.page_top = 1 - elseif self.selected <= (self.page_size // 2) then - self.page_top = 1 - elseif self.selected >= #self.choices - (self.page_size // 2) then + elseif self.page_top > #self.choices - self.page_size + 1 then self.page_top = #self.choices - self.page_size + 1 end end @@ -1719,14 +1717,8 @@ function List:postComputeFrame(body) return end - local max_page_top = math.max(1, num_choices - row_count + 1) - - if self.selected > num_choices - row_count then - self.page_top = max_page_top - elseif self.selected < self.page_top then - self.page_top = self.selected - else - self.page_top = math.max(1, self.selected - row_count + 1) + if self.page_top > num_choices - self.page_size + 1 then + self.page_top = math.max(1, num_choices - self.page_size + 1) end update_list_scrollbar(self)