diff --git a/frontend/ui/widget/touchmenu.lua b/frontend/ui/widget/touchmenu.lua index 91169ccda..7dcd4110b 100644 --- a/frontend/ui/widget/touchmenu.lua +++ b/frontend/ui/widget/touchmenu.lua @@ -261,6 +261,7 @@ end function TouchMenu:_recalculateDimen() self.dimen.w = self.width + -- if height not given, dynamically calculate it if not self.height then self.dimen.h = (#self.item_table + 2) * self.item_height @@ -268,13 +269,16 @@ function TouchMenu:_recalculateDimen() else self.dimen.h = self.height end + -- make sure self.dimen.h does not overflow screen height if self.dimen.h > Screen:getHeight() then - self.dimen.h = Screen:getHeight() + self.dimen.h = Screen:getHeight() - self.bar:getSize().h end + self.perpage = math.floor(self.dimen.h / self.item_height) - 2 if self.perpage > self.max_per_page then self.perpage = self.max_per_page end + self.page_num = math.ceil(#self.item_table / self.perpage) end @@ -350,6 +354,7 @@ end function TouchMenu:backToUpperMenu() if #self.item_table_stack ~= 0 then self.item_table = table.remove(self.item_table_stack) + self.page = 1 self:updateItems() end end diff --git a/koreader-base b/koreader-base index 6c89c8be5..47ba71a51 160000 --- a/koreader-base +++ b/koreader-base @@ -1 +1 @@ -Subproject commit 6c89c8be5da00ed198afc17c8436746136186879 +Subproject commit 47ba71a516dd80ae1df8127276bd89244943bdc7