diff --git a/defaults.lua b/defaults.lua index 1eefe2292..c78a6492b 100644 --- a/defaults.lua +++ b/defaults.lua @@ -1,7 +1,11 @@ -- number of page turns between full screen refresh --- default to full refresh on every page turn +-- default to do a full refresh on every 6 page turns DRCOUNTMAX = 6 +-- number of pages for hinting +-- default to pre-rendering 2 pages +DHINTCOUNT = 2 + -- full screen mode, 1 for true, 0 for false DFULL_SCREEN = 1 diff --git a/frontend/ui/reader/readerhinting.lua b/frontend/ui/reader/readerhinting.lua index 1fad17ba1..cc16c0c6e 100644 --- a/frontend/ui/reader/readerhinting.lua +++ b/frontend/ui/reader/readerhinting.lua @@ -3,6 +3,21 @@ ReaderHinting = EventListener:new{ hinting_states = {} } +function ReaderHinting:onHintPage() + if not self.view.hinting then return true end + for i=1, DHINTCOUNT do + if self.zoom.current_page + i <= self.ui.document.info.number_of_pages then + self.ui.document:hintPage( + self.view.state.page + i, + self.zoom:getZoom(self.view.state.page + i), + self.view.state.rotation, + self.view.state.gamma, + self.view.render_mode) + end + end + return true +end + function ReaderHinting:onSetHinting(hinting) self.view.hinting = hinting end @@ -16,4 +31,4 @@ end function ReaderHinting:onRestoreHinting() self.view.hinting = table.remove(self.hinting_states) return true -end \ No newline at end of file +end diff --git a/frontend/ui/reader/readerzooming.lua b/frontend/ui/reader/readerzooming.lua index d9618f1c8..073818e39 100644 --- a/frontend/ui/reader/readerzooming.lua +++ b/frontend/ui/reader/readerzooming.lua @@ -161,19 +161,6 @@ function ReaderZooming:onReZoom() return true end -function ReaderZooming:onHintPage() - if not self.view.hinting then return true end - if self.current_page < self.ui.document.info.number_of_pages then - self.ui.document:hintPage( - self.view.state.page + 1, - self:getZoom(self.view.state.page + 1), - self.view.state.rotation, - self.view.state.gamma, - self.view.render_mode) - end - return true -end - function ReaderZooming:getZoom(pageno) -- check if we're in bbox mode and work on bbox if that's the case local zoom = nil diff --git a/frontend/ui/readerui.lua b/frontend/ui/readerui.lua index 171283245..699470024 100644 --- a/frontend/ui/readerui.lua +++ b/frontend/ui/readerui.lua @@ -173,6 +173,7 @@ function ReaderUI:init() -- hinting controller local hinter = ReaderHinting:new{ dialog = self.dialog, + zoom = zoomer, view = self[1], ui = self, document = self.document, diff --git a/koreader-base b/koreader-base index 1940f8bd8..88c26d984 160000 --- a/koreader-base +++ b/koreader-base @@ -1 +1 @@ -Subproject commit 1940f8bd8b7c3c7c855d4fc7e1e86ea3f148c015 +Subproject commit 88c26d984c3232cdd6d03b19a0da5f6c49351810