Remove run twice onPageUpdate() when document is opening (#2855)

* Remove run twice onPageUpdate() when document is opening
pull/2866/head
Robert 7 years ago committed by Frans de Jonge
parent cca9c09bb4
commit 394be8a651

@ -1,13 +1,12 @@
local InputContainer = require("ui/widget/container/inputcontainer")
local ReaderPanning = require("apps/reader/modules/readerpanning")
local Screen = require("device").screen
local Device = require("device") local Device = require("device")
local Input = require("device").input local InputContainer = require("ui/widget/container/inputcontainer")
local Event = require("ui/event") local Event = require("ui/event")
local ReaderPanning = require("apps/reader/modules/readerpanning")
local UIManager = require("ui/uimanager") local UIManager = require("ui/uimanager")
local logger = require("logger") local logger = require("logger")
local _ = require("gettext") local _ = require("gettext")
local Input = Device.input
local Screen = Device.screen
--[[ --[[
Rolling is just like paging in page-based documents except that Rolling is just like paging in page-based documents except that
@ -93,7 +92,6 @@ function ReaderRolling:init()
table.insert(self.ui.postInitCallback, function() table.insert(self.ui.postInitCallback, function()
self.doc_height = self.ui.document.info.doc_height self.doc_height = self.ui.document.info.doc_height
self.old_doc_height = self.doc_height self.old_doc_height = self.doc_height
self.old_page = self.ui.document.info.number_of_pages
end) end)
self.ui.menu:registerToMainMenu(self) self.ui.menu:registerToMainMenu(self)
end end
@ -267,7 +265,11 @@ end
function ReaderRolling:getLastPercent() function ReaderRolling:getLastPercent()
if self.view.view_mode == "page" then if self.view.view_mode == "page" then
return self.current_page / self.old_page if self.old_page then
return self.current_page / self.old_page
else
return nil
end
else else
-- FIXME: the calculated percent is not accurate in "scroll" mode. -- FIXME: the calculated percent is not accurate in "scroll" mode.
return self.ui.document:getPosFromXPointer( return self.ui.document:getPosFromXPointer(
@ -447,7 +449,9 @@ function ReaderRolling:updatePos()
local new_height = self.ui.document.info.doc_height local new_height = self.ui.document.info.doc_height
local new_page = self.ui.document.info.number_of_pages local new_page = self.ui.document.info.number_of_pages
if self.old_doc_height ~= new_height or self.old_page ~= new_page then if self.old_doc_height ~= new_height or self.old_page ~= new_page then
self:_gotoXPointer(self.xpointer) if self.old_page then
self:_gotoXPointer(self.xpointer)
end
self.old_doc_height = new_height self.old_doc_height = new_height
self.old_page = new_page self.old_page = new_page
self.ui:handleEvent(Event:new("UpdateToc")) self.ui:handleEvent(Event:new("UpdateToc"))
@ -461,11 +465,12 @@ end
function ReaderRolling:onChangeViewMode() function ReaderRolling:onChangeViewMode()
self.ui.document:_readMetadata() self.ui.document:_readMetadata()
self.old_doc_height = self.ui.document.info.doc_height self.old_doc_height = self.ui.document.info.doc_height
local old_page = self.old_page
self.old_page = self.ui.document.info.number_of_pages self.old_page = self.ui.document.info.number_of_pages
self.ui:handleEvent(Event:new("UpdateToc")) self.ui:handleEvent(Event:new("UpdateToc"))
if self.xpointer then if self.xpointer and old_page then
self:_gotoXPointer(self.xpointer) self:_gotoXPointer(self.xpointer)
else elseif self.xpointer == nil then
table.insert(self.ui.postInitCallback, function() table.insert(self.ui.postInitCallback, function()
self:_gotoXPointer(self.xpointer) self:_gotoXPointer(self.xpointer)
end) end)

Loading…
Cancel
Save