ScreenSaver: Delay footer/header repaint if screensaver_delay is enabled (#7334)

Fix #7327
This commit is contained in:
NiLuJe
2021-02-24 00:36:05 +01:00
committed by GitHub
parent 013a6076c1
commit d243097d75
4 changed files with 45 additions and 6 deletions

View File

@@ -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

View File

@@ -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()