mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Reader: Do less work on same-orientation non-gyro rotations (#11297)
Namely, don't recompute layouts, as they do not change. (The gyro codepaths were already doing something similar.) * Keep ConfigDialog, FileManagerMenu & ReaderMenu open on rotation. (In practice, only ConfigDialog is affected, as *Menu doesn't handle the rotation event.) * Plugged an instance leak in the aforementioned Menu classes. * Unify behavior & code with the gyro codepaths.
This commit is contained in:
@@ -95,7 +95,7 @@ function ReaderMenu:getPreviousFile()
|
||||
return require("readhistory"):getPreviousFile(self.ui.document.file)
|
||||
end
|
||||
|
||||
function ReaderMenu:onReaderReady()
|
||||
function ReaderMenu:initGesListener()
|
||||
if not Device:isTouchDevice() then return end
|
||||
|
||||
local DTAP_ZONE_MENU = G_defaults:readSetting("DTAP_ZONE_MENU")
|
||||
@@ -179,6 +179,8 @@ function ReaderMenu:onReaderReady()
|
||||
})
|
||||
end
|
||||
|
||||
ReaderMenu.onReaderReady = ReaderMenu.initGesListener
|
||||
|
||||
function ReaderMenu:setUpdateItemTable()
|
||||
for _, widget in pairs(self.registered_widgets) do
|
||||
local ok, err = pcall(widget.addToMainMenu, widget, self.menu_items)
|
||||
@@ -456,16 +458,24 @@ function ReaderMenu:onShowMenu(tab_index)
|
||||
end
|
||||
|
||||
function ReaderMenu:onCloseReaderMenu()
|
||||
if self.menu_container then
|
||||
self.last_tab_index = self.menu_container[1].last_index
|
||||
self:onSaveSettings()
|
||||
UIManager:close(self.menu_container)
|
||||
end
|
||||
if not self.menu_container then return true end
|
||||
self.last_tab_index = self.menu_container[1].last_index
|
||||
self:onSaveSettings()
|
||||
UIManager:close(self.menu_container)
|
||||
self.menu_container = nil
|
||||
return true
|
||||
end
|
||||
|
||||
function ReaderMenu:onSetDimensions(dimen)
|
||||
self:onCloseReaderMenu()
|
||||
-- This widget doesn't support in-place layout updates, so, close & reopen
|
||||
if self.menu_container then
|
||||
self:onCloseReaderMenu()
|
||||
self:onShowMenu()
|
||||
end
|
||||
|
||||
-- update gesture zones according to new screen dimen
|
||||
-- (On CRe, this will get called a second time by ReaderReady once the document is reloaded).
|
||||
self:initGesListener()
|
||||
end
|
||||
|
||||
function ReaderMenu:onCloseDocument()
|
||||
|
||||
Reference in New Issue
Block a user