ScreenSaver: Saner close behavior (#7929)

Should fix #7643
pull/7934/head
NiLuJe 3 years ago committed by GitHub
parent b07414c2b5
commit ed5a9294a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -52,11 +52,14 @@ function ReaderCoptListener:onReadSettings(config)
-- Have this ready in case auto-refresh is enabled, now or later
self.headerRefresh = function()
-- Only draw it if something has changed
local new_battery_level = Device:getPowerDevice():getCapacity()
if self.clock == 1 or (self.battery == 1 and new_battery_level ~= self.old_battery_level) then
self.old_battery_level = new_battery_level
self:updateHeader()
-- Only draw it if the header is shown...
if self.document.configurable.status_line == 0 and self.view.view_mode == "page" then
-- ...and something has changed
local new_battery_level = Device:getPowerDevice():getCapacity()
if self.clock == 1 or (self.battery == 1 and new_battery_level ~= self.old_battery_level) then
self.old_battery_level = new_battery_level
self:updateHeader()
end
end
self:rescheduleHeaderRefreshIfNeeded() -- schedule (or not) next refresh
end

@ -692,14 +692,14 @@ function Screensaver:close()
UIManager:scheduleIn(screensaver_delay_number, function()
logger.dbg("close screensaver")
if self.screensaver_widget then
UIManager:close(self.screensaver_widget, "full")
UIManager:close(self.screensaver_widget)
self.screensaver_widget = nil
end
end)
elseif screensaver_delay == "disable" then
logger.dbg("close screensaver")
if self.screensaver_widget then
UIManager:close(self.screensaver_widget, "full")
UIManager:close(self.screensaver_widget)
self.screensaver_widget = nil
end
else

@ -53,8 +53,7 @@ function ScreenSaverWidget:update()
self.dithered = true
self[1] = self.main_frame
UIManager:setDirty(self, function()
local update_region = self.main_frame.dimen
return "full", update_region
return "full", self.main_frame.dimen
end)
end
@ -73,9 +72,7 @@ function ScreenSaverWidget:onTap(_, ges)
end
function ScreenSaverWidget:onClose()
UIManager:close(self, "full")
-- Will come after the Resume event (how much later depends on screensaver_delay).
UIManager:broadcastEvent(Event:new("OutOfScreenSaver"))
UIManager:close(self)
return true
end
@ -88,6 +85,10 @@ function ScreenSaverWidget:onCloseWidget()
UIManager:setDirty(nil, function()
return "full", self.main_frame.dimen
end)
-- Will come after the Resume event, iff screensaver_delay is set.
-- Comes *before* it otherwise.
UIManager:broadcastEvent(Event:new("OutOfScreenSaver"))
end
return ScreenSaverWidget

Loading…
Cancel
Save