diff --git a/frontend/ui/reader/readerrolling.lua b/frontend/ui/reader/readerrolling.lua index beb439cbb..34eebc387 100644 --- a/frontend/ui/reader/readerrolling.lua +++ b/frontend/ui/reader/readerrolling.lua @@ -256,6 +256,20 @@ function ReaderRolling:onUpdatePos() return true end +function ReaderRolling:onChangeViewMode() + self.ui.document:_readMetadata() + self.old_doc_height = self.ui.document.info.doc_height + self.old_page = self.ui.document.info.number_of_pages + self.ui:handleEvent(Event:new("UpdateToc")) + self:gotoXPointer(self.ui.document:getXPointer()) + if self.view.view_mode == "scroll" then + self.current_pos = self.ui.document:getCurrentPos() + else + self.current_page = self.ui.document:getCurrentPage() + end + return true +end + function ReaderRolling:onRedrawCurrentView() if self.view.view_mode == "page" then self.ui:handleEvent(Event:new("PageUpdate", self.current_page)) diff --git a/frontend/ui/reader/readerview.lua b/frontend/ui/reader/readerview.lua index a9775decf..f5dfbc7de 100644 --- a/frontend/ui/reader/readerview.lua +++ b/frontend/ui/reader/readerview.lua @@ -490,7 +490,7 @@ end function ReaderView:onSetViewMode(new_mode) self.view_mode = new_mode self.ui.document:setViewMode(new_mode) - self.ui:handleEvent(Event:new("UpdatePos")) + self.ui:handleEvent(Event:new("ChangeViewMode")) return true end