PDF: align page view with target when following internal link (#8907)

This commit is contained in:
lennonhill
2022-03-16 23:22:56 +01:00
committed by GitHub
parent f8eca5fa03
commit eb34fbb818
2 changed files with 16 additions and 2 deletions

View File

@@ -1062,8 +1062,22 @@ function ReaderPaging:_gotoPage(number, orig_mode)
return true
end
function ReaderPaging:onGotoPage(number)
function ReaderPaging:onGotoPage(number, pos)
self:setPagePosition(number, 0)
self:_gotoPage(number)
if pos then
local rect_p = Geom:new{ x = pos.x or 0, y = pos.y or 0 }
local rect_s = Geom:new(rect_p):copy()
rect_s:transformByScale(self.view.state.zoom)
if self.view.page_scroll then
self:onScrollPanRel(rect_s.y - self.view.page_area.y)
else
self.view:PanningUpdate(rect_s.x - self.view.visible_area.x, rect_s.y - self.view.visible_area.y)
end
elseif number == self.current_page then
-- gotoPage emits this event only if the page changes
self.ui:handleEvent(Event:new("PageUpdate", self.current_page))
end
return true
end