diff --git a/frontend/apps/reader/modules/readerlink.lua b/frontend/apps/reader/modules/readerlink.lua index 0b5ef933a..83f4fba7e 100644 --- a/frontend/apps/reader/modules/readerlink.lua +++ b/frontend/apps/reader/modules/readerlink.lua @@ -108,11 +108,10 @@ end function ReaderLink:onGotoLink(link) if self.ui.document.info.has_pages then table.insert(self.link_states, self.view.state.page) - self.ui:handleEvent(Event:new("PageUpdate", link.page + 1)) + self.ui:handleEvent(Event:new("GotoPage", link.page + 1)) else table.insert(self.link_states, self.ui.document:getXPointer()) - self.document:gotoLink(link) - self.ui:handleEvent(Event:new("UpdateXPointer")) + self.ui:handleEvent(Event:new("GotoXPointer", link)) end return true end @@ -122,14 +121,13 @@ function ReaderLink:onSwipe(arg, ges) if self.ui.document.info.has_pages then local last_page = table.remove(self.link_states) if last_page then - self.ui:handleEvent(Event:new("PageUpdate", last_page)) + self.ui:handleEvent(Event:new("GotoPage", last_page)) return true end else local last_xp = table.remove(self.link_states) if last_xp then - self.ui.document:gotoXPointer(last_xp) - self.ui:handleEvent(Event:new("UpdateXPointer")) + self.ui:handleEvent(Event:new("GotoXPointer", last_xp)) return true end end diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 46bd7b1a6..efe29bb8c 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -298,6 +298,12 @@ function ReaderRolling:onGotoPage(number) return true end +function ReaderRolling:onGotoXPointer(xp) + self:gotoXPointer(xp) + self.xpointer = xp + return true +end + function ReaderRolling:onGotoViewRel(diff) DEBUG("goto relative screen:", diff, ", in mode: ", self.view.view_mode) if self.view.view_mode == "scroll" then @@ -357,17 +363,6 @@ function ReaderRolling:updatePos() UIManager.repaint_all = true end --- FIXME: there should no other way to update xpointer -function ReaderRolling:onUpdateXPointer() - local xp = self.ui.document:getXPointer() - if self.view.view_mode == "page" then - self.ui:handleEvent(Event:new("PageUpdate", self.ui.document:getPageFromXPointer(xp))) - else - self.ui:handleEvent(Event:new("PosUpdate", self.ui.document:getPosFromXPointer(xp))) - end - return true -end - --[[ switching screen mode should not change current page number --]] diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index 5d01201dc..7ac12e750 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -303,7 +303,7 @@ function ReaderToc:onShowToc() } function toc_menu:onMenuChoice(item) - self.ui:handleEvent(Event:new("PageUpdate", item.page)) + self.ui:handleEvent(Event:new("GotoPage", item.page)) end toc_menu.close_callback = function()