From 89af6d938596c6f8c9150b962b9cf818fb518403 Mon Sep 17 00:00:00 2001 From: weijiuqiao <59040746+weijiuqiao@users.noreply.github.com> Date: Thu, 29 Dec 2022 23:36:53 +0800 Subject: [PATCH] KVPage: fix crash from empty page due to item deletion (#9974) Fixes #9972. --- frontend/ui/widget/keyvaluepage.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/ui/widget/keyvaluepage.lua b/frontend/ui/widget/keyvaluepage.lua index 385ccf9e1..0f572a1d8 100644 --- a/frontend/ui/widget/keyvaluepage.lua +++ b/frontend/ui/widget/keyvaluepage.lua @@ -608,6 +608,7 @@ function KeyValuePage:_populateItems() -- first we check if no unfit item at all local width_ratio if (#self.kv_pairs == 0) or + (#key_widths == 0) or (key_widths[#key_widths] <= key_w and value_widths[#value_widths] <= value_w) then width_ratio = 1/2 end @@ -747,6 +748,8 @@ end function KeyValuePage:removeKeyValueItem(kv_item) if kv_item.kv_pairs_idx then table.remove(self.kv_pairs, kv_item.kv_pairs_idx) + self.pages = math.ceil(#self.kv_pairs / self.items_per_page) + self.show_page = math.min(self.show_page, self.pages) self:_populateItems() end end