mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
readercopt(fix): set view mode after reader is ready
Otherwise, self.xpointer might still be nil in ReaderRolling:onChangeViewMode
This commit is contained in:
committed by
Frans de Jonge
parent
a2bfc3858d
commit
00cf81febc
@@ -1,17 +1,16 @@
|
||||
local EventListener = require("ui/widget/eventlistener")
|
||||
local Event = require("ui/event")
|
||||
|
||||
local ReaderCoptListener = EventListener:new{}
|
||||
|
||||
function ReaderCoptListener:onReadSettings(config)
|
||||
local view_mode = config:readSetting("copt_view_mode")
|
||||
if view_mode == 0 then
|
||||
table.insert(self.ui.postInitCallback, function()
|
||||
self.ui:handleEvent(Event:new("SetViewMode", "page"))
|
||||
self.ui:registerPostReadyCallback(function()
|
||||
self.view:onSetViewMode("page")
|
||||
end)
|
||||
elseif view_mode == 1 then
|
||||
table.insert(self.ui.postInitCallback, function()
|
||||
self.ui:handleEvent(Event:new("SetViewMode", "scroll"))
|
||||
self.ui:registerPostReadyCallback(function()
|
||||
self.view:onSetViewMode("scroll")
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ local ReaderUI = InputContainer:new{
|
||||
password = nil,
|
||||
|
||||
postInitCallback = nil,
|
||||
postReaderCallback = nil,
|
||||
}
|
||||
|
||||
function ReaderUI:registerModule(name, ui_module, always_active)
|
||||
@@ -84,11 +85,16 @@ function ReaderUI:registerPostInitCallback(callback)
|
||||
table.insert(self.postInitCallback, callback)
|
||||
end
|
||||
|
||||
function ReaderUI:registerPostReadyCallback(callback)
|
||||
table.insert(self.postReaderCallback, callback)
|
||||
end
|
||||
|
||||
function ReaderUI:init()
|
||||
-- cap screen refresh on pan to 2 refreshes per second
|
||||
local pan_rate = Screen.eink and 2.0 or 30.0
|
||||
|
||||
self.postInitCallback = {}
|
||||
self.postReaderCallback = {}
|
||||
-- if we are not the top level dialog ourselves, it must be given in the table
|
||||
if not self.dialog then
|
||||
self.dialog = self
|
||||
@@ -329,11 +335,17 @@ function ReaderUI:init()
|
||||
for _,v in ipairs(self.postInitCallback) do
|
||||
v()
|
||||
end
|
||||
self.postInitCallback = nil
|
||||
|
||||
-- After initialisation notify that document is loaded and rendered
|
||||
-- CREngine only reports correct page count after rendering is done
|
||||
-- Need the same event for PDF document
|
||||
self:handleEvent(Event:new("ReaderReady", self.doc_settings))
|
||||
|
||||
for _,v in ipairs(self.postReaderCallback) do
|
||||
v()
|
||||
end
|
||||
self.postReaderCallback = nil
|
||||
end
|
||||
|
||||
function ReaderUI:showReader(file)
|
||||
|
||||
Reference in New Issue
Block a user