diff --git a/frontend/ui/reader/readermenu.lua b/frontend/ui/reader/readermenu.lua index 412ff21ba..671e8dce6 100644 --- a/frontend/ui/reader/readermenu.lua +++ b/frontend/ui/reader/readermenu.lua @@ -58,6 +58,8 @@ function ReaderMenu:setUpdateItemTable() table.insert(self.item_table, { text = "Return to file manager", callback = function() + self.ui:handleEvent(Event:new("RestoreScreenMode", + G_reader_settings:readSetting("screen_mode") or "portrait")) UIManager:close(self.menu_container) self.ui:onClose() end diff --git a/frontend/ui/reader/readerview.lua b/frontend/ui/reader/readerview.lua index 4d832ade3..4c3db04c0 100644 --- a/frontend/ui/reader/readerview.lua +++ b/frontend/ui/reader/readerview.lua @@ -132,12 +132,21 @@ end function ReaderView:onSetScreenMode(new_mode) if new_mode == "landscape" or new_mode == "portrait" then + self.screen_mode = new_mode Screen:setScreenMode(new_mode) self.ui:handleEvent(Event:new("SetDimensions", Screen:getSize())) end return true end +function ReaderView:onRestoreScreenMode(old_mode) + if old_mode == "landscape" or old_mode == "portrait" then + Screen:setScreenMode(old_mode) + self.ui:handleEvent(Event:new("SetDimensions", Screen:getSize())) + end + return true +end + function ReaderView:onSetDimensions(dimensions) self.dimen = dimensions -- recalculate view @@ -146,15 +155,24 @@ end function ReaderView:onReadSettings(config) self.render_mode = config:readSetting("render_mode") or 0 + self.init_screen_mode = config:readSetting("screen_mode") or "portrait" end function ReaderView:onPageUpdate(new_page_no) self.state.page = new_page_no + if self.init_screen_mode then + self.ui:handleEvent(Event:new("SetScreenMode", self.init_screen_mode)) + self.init_screen_mode = nil + end self:recalculate() end function ReaderView:onPosUpdate(new_pos) self.state.pos = new_pos + if self.init_screen_mode then + self.ui:handleEvent(Event:new("SetScreenMode", self.init_screen_mode)) + self.init_screen_mode = nil + end self:recalculate() end @@ -192,4 +210,5 @@ end function ReaderView:onCloseDocument() self.ui.doc_settings:saveSetting("render_mode", self.render_mode) + self.ui.doc_settings:saveSetting("screen_mode", self.screen_mode) end