mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
ScreenSaver: Delay footer/header repaint if screensaver_delay is enabled (#7334)
Fix #7327
This commit is contained in:
@@ -116,7 +116,25 @@ ReaderCoptListener.onSetStatusLine = ReaderCoptListener.rescheduleHeaderRefreshI
|
||||
ReaderCoptListener.onSetViewMode = ReaderCoptListener.rescheduleHeaderRefreshIfNeeded
|
||||
-- ReaderView:onSetViewMode(), which sets view.view_mode, is called before
|
||||
-- ReaderCoptListener.onSetViewMode, so we'll get the updated value
|
||||
ReaderCoptListener.onResume = ReaderCoptListener.rescheduleHeaderRefreshIfNeeded
|
||||
function ReaderCoptListener:onResume()
|
||||
-- Don't repaint the header until OutOfScreenSaver if screensaver_delay is enabled...
|
||||
local screensaver_delay = G_reader_settings:readSetting("screensaver_delay")
|
||||
if screensaver_delay and screensaver_delay ~= "disable" then
|
||||
self._delayed_screensaver = true
|
||||
return
|
||||
end
|
||||
|
||||
ReaderCoptListener:rescheduleHeaderRefreshIfNeeded()
|
||||
end
|
||||
|
||||
function ReaderCoptListener:onOutOfScreenSaver()
|
||||
if not self._delayed_screensaver then
|
||||
return
|
||||
end
|
||||
|
||||
self._delayed_screensaver = nil
|
||||
ReaderCoptListener:rescheduleHeaderRefreshIfNeeded()
|
||||
end
|
||||
|
||||
-- Unschedule on these events
|
||||
ReaderCoptListener.onCloseDocument = ReaderCoptListener.unscheduleHeaderRefresh
|
||||
|
||||
@@ -2177,6 +2177,24 @@ function ReaderFooter:refreshFooter(refresh, signal)
|
||||
end
|
||||
|
||||
function ReaderFooter:onResume()
|
||||
-- Don't repaint the footer until OutOfScreenSaver if screensaver_delay is enabled...
|
||||
local screensaver_delay = G_reader_settings:readSetting("screensaver_delay")
|
||||
if screensaver_delay and screensaver_delay ~= "disable" then
|
||||
self._delayed_screensaver = true
|
||||
return
|
||||
end
|
||||
|
||||
-- Force a footer repaint on resume if it was visible
|
||||
self:onUpdateFooter(self.view.footer_visible)
|
||||
self:rescheduleFooterAutoRefreshIfNeeded()
|
||||
end
|
||||
|
||||
function ReaderFooter:onOutOfScreenSaver()
|
||||
if not self._delayed_screensaver then
|
||||
return
|
||||
end
|
||||
|
||||
self._delayed_screensaver = nil
|
||||
-- Force a footer repaint on resume if it was visible
|
||||
self:onUpdateFooter(self.view.footer_visible)
|
||||
self:rescheduleFooterAutoRefreshIfNeeded()
|
||||
|
||||
Reference in New Issue
Block a user