diff --git a/frontend/apps/reader/modules/readercropping.lua b/frontend/apps/reader/modules/readercropping.lua index fa08587cd..fe5fc7f19 100644 --- a/frontend/apps/reader/modules/readercropping.lua +++ b/frontend/apps/reader/modules/readercropping.lua @@ -67,15 +67,18 @@ end local ReaderCropping = InputContainer:new{} function ReaderCropping:onPageCrop(mode) - if mode == "auto" then return end self.ui:handleEvent(Event:new("CloseConfigMenu")) + -- backup original zoom mode as cropping use "page" zoom mode + self.orig_zoom_mode = self.view.zoom_mode + if mode == "auto" then + self:setCropZoomMode(true) + return + end -- backup original view dimen self.orig_view_dimen = Geom:new{w = self.view.dimen.w, h = self.view.dimen.h} -- backup original view bgcolor self.orig_view_bgcolor = self.view.outer_page_color self.view.outer_page_color = Blitbuffer.gray(0.5) -- gray bgcolor - -- backup original zoom mode as cropping use "page" zoom mode - self.orig_zoom_mode = self.view.zoom_mode -- backup original page scroll self.orig_page_scroll = self.view.page_scroll self.view.page_scroll = false @@ -143,18 +146,22 @@ function ReaderCropping:exitPageCrop(confirmed) if self.orig_reflow_mode == 1 then self.ui:handleEvent(Event:new("RestoreZoomMode")) else - if confirmed then - -- if original zoom mode is not "content", set zoom mode to "contentwidth" - self.ui:handleEvent(Event:new("SetZoomMode", - self.orig_zoom_mode:find("content") and self.orig_zoom_mode or "contentwidth")) - self.ui:handleEvent(Event:new("InitScrollPageStates")) - else - self.ui:handleEvent(Event:new("SetZoomMode", self.orig_zoom_mode)) - end + self:setCropZoomMode(confirmed) end UIManager.repaint_all = true end +function ReaderCropping:setCropZoomMode(confirmed) + if confirmed then + -- if original zoom mode is not "content", set zoom mode to "contentwidth" + self.ui:handleEvent(Event:new("SetZoomMode", + self.orig_zoom_mode:find("content") and self.orig_zoom_mode or "contentwidth")) + self.ui:handleEvent(Event:new("InitScrollPageStates")) + else + self.ui:handleEvent(Event:new("SetZoomMode", self.orig_zoom_mode)) + end +end + function ReaderCropping:onReadSettings(config) self.document.bbox = config:readSetting("bbox") end