mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
@@ -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
|
||||
|
||||
@@ -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
|
||||
--]]
|
||||
|
||||
@@ -305,7 +305,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()
|
||||
|
||||
Reference in New Issue
Block a user