diff --git a/frontend/apps/reader/modules/readerview.lua b/frontend/apps/reader/modules/readerview.lua index 07b162c77..7abee08db 100644 --- a/frontend/apps/reader/modules/readerview.lua +++ b/frontend/apps/reader/modules/readerview.lua @@ -857,8 +857,11 @@ In combination with zoom to fit page, page height, content height, content or co end function ReaderView:onReadSettings(config) - self.document:setTileCacheValidity(config:readSetting("tile_cache_validity_ts")) - self.render_mode = config:readSetting("render_mode") or 0 + if self.ui.paging then + self.document:setTileCacheValidity(config:readSetting("tile_cache_validity_ts")) + self.render_mode = config:readSetting("render_mode") or 0 + self.state.gamma = config:readSetting("gamma") or 1.0 + end local rotation_mode = nil local locked = G_reader_settings:isTrue("lock_rotation") -- Keep current rotation by doing nothing when sticky rota is enabled. @@ -868,17 +871,13 @@ function ReaderView:onReadSettings(config) rotation_mode = config:readSetting("rotation_mode") -- Doc's else -- No doc specific rotation, pickup global defaults for the doc type - if self.ui.paging then - rotation_mode = G_reader_settings:readSetting("kopt_rotation_mode") or Screen.DEVICE_ROTATED_UPRIGHT - else - rotation_mode = G_reader_settings:readSetting("copt_rotation_mode") or Screen.DEVICE_ROTATED_UPRIGHT - end + local setting_name = self.ui.paging and "kopt_rotation_mode" or "copt_rotation_mode" + rotation_mode = G_reader_settings:readSetting(setting_name) or Screen.DEVICE_ROTATED_UPRIGHT end end if rotation_mode then self:onSetRotationMode(rotation_mode) end - self.state.gamma = config:readSetting("gamma") or 1.0 local full_screen = config:readSetting("kopt_full_screen") or self.document.configurable.full_screen if full_screen == 0 then self.footer_visible = false @@ -1063,20 +1062,22 @@ function ReaderView:onPageGapUpdate(page_gap) end function ReaderView:onSaveSettings() - if self.document:isEdited() and G_reader_settings:readSetting("save_document") ~= "always" then - -- Either "disable" (and the current tiles will be wrong) or "prompt" (but the - -- prompt will happen later, too late to catch "Don't save"), so force cached - -- tiles to be ignored on next opening. - self.document:resetTileCacheValidity() - end - self.ui.doc_settings:saveSetting("tile_cache_validity_ts", self.document:getTileCacheValidity()) - self.ui.doc_settings:saveSetting("render_mode", self.render_mode) + if self.ui.paging then + if self.document:isEdited() and G_reader_settings:readSetting("save_document") ~= "always" then + -- Either "disable" (and the current tiles will be wrong) or "prompt" (but the + -- prompt will happen later, too late to catch "Don't save"), so force cached + -- tiles to be ignored on next opening. + self.document:resetTileCacheValidity() + end + self.ui.doc_settings:saveSetting("tile_cache_validity_ts", self.document:getTileCacheValidity()) + self.ui.doc_settings:saveSetting("render_mode", self.render_mode) + self.ui.doc_settings:saveSetting("gamma", self.state.gamma) + end -- Don't etch the current rotation in stone when sticky rotation is enabled local locked = G_reader_settings:isTrue("lock_rotation") if not locked then self.ui.doc_settings:saveSetting("rotation_mode", Screen:getRotationMode()) end - self.ui.doc_settings:saveSetting("gamma", self.state.gamma) self.ui.doc_settings:saveSetting("highlight", self.highlight.saved) self.ui.doc_settings:saveSetting("inverse_reading_order", self.inverse_reading_order) self.ui.doc_settings:saveSetting("show_overlap_enable", self.page_overlap_enable) @@ -1155,11 +1156,7 @@ function ReaderView:isOverlapAllowed() end function ReaderView:setupTouchZones() - if self.ui.rolling then - self.ui.rolling:setupTouchZones() - else - self.ui.paging:setupTouchZones() - end + (self.ui.rolling or self.ui.paging):setupTouchZones() end function ReaderView:onToggleReadingOrder()