pull/1020/head
chrox 10 years ago
parent 1697191cf9
commit 1462d382d9

@ -108,11 +108,10 @@ end
function ReaderLink:onGotoLink(link) function ReaderLink:onGotoLink(link)
if self.ui.document.info.has_pages then if self.ui.document.info.has_pages then
table.insert(self.link_states, self.view.state.page) 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 else
table.insert(self.link_states, self.ui.document:getXPointer()) table.insert(self.link_states, self.ui.document:getXPointer())
self.document:gotoLink(link) self.ui:handleEvent(Event:new("GotoXPointer", link))
self.ui:handleEvent(Event:new("UpdateXPointer"))
end end
return true return true
end end
@ -122,14 +121,13 @@ function ReaderLink:onSwipe(arg, ges)
if self.ui.document.info.has_pages then if self.ui.document.info.has_pages then
local last_page = table.remove(self.link_states) local last_page = table.remove(self.link_states)
if last_page then if last_page then
self.ui:handleEvent(Event:new("PageUpdate", last_page)) self.ui:handleEvent(Event:new("GotoPage", last_page))
return true return true
end end
else else
local last_xp = table.remove(self.link_states) local last_xp = table.remove(self.link_states)
if last_xp then if last_xp then
self.ui.document:gotoXPointer(last_xp) self.ui:handleEvent(Event:new("GotoXPointer", last_xp))
self.ui:handleEvent(Event:new("UpdateXPointer"))
return true return true
end end
end end

@ -298,6 +298,12 @@ function ReaderRolling:onGotoPage(number)
return true return true
end end
function ReaderRolling:onGotoXPointer(xp)
self:gotoXPointer(xp)
self.xpointer = xp
return true
end
function ReaderRolling:onGotoViewRel(diff) function ReaderRolling:onGotoViewRel(diff)
DEBUG("goto relative screen:", diff, ", in mode: ", self.view.view_mode) DEBUG("goto relative screen:", diff, ", in mode: ", self.view.view_mode)
if self.view.view_mode == "scroll" then if self.view.view_mode == "scroll" then
@ -357,17 +363,6 @@ function ReaderRolling:updatePos()
UIManager.repaint_all = true UIManager.repaint_all = true
end 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 switching screen mode should not change current page number
--]] --]]

@ -303,7 +303,7 @@ function ReaderToc:onShowToc()
} }
function toc_menu:onMenuChoice(item) function toc_menu:onMenuChoice(item)
self.ui:handleEvent(Event:new("PageUpdate", item.page)) self.ui:handleEvent(Event:new("GotoPage", item.page))
end end
toc_menu.close_callback = function() toc_menu.close_callback = function()

Loading…
Cancel
Save