mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
ScreenSaver: Get rid of gratuitous complexity
Screensaver isn't instantiated, so we don't really have any reason to go through fancy class trickery to do this (as cool as it looked ;p)...
This commit is contained in:
@@ -805,18 +805,6 @@ function Screensaver:show()
|
||||
self.screensaver_widget.modal = true
|
||||
self.screensaver_widget.dithered = true
|
||||
|
||||
-- NOTE: ScreenSaver itself is not a widget, so make sure we cleanup behind us...
|
||||
self.screensaver_widget.onCloseWidget = function(this)
|
||||
-- this is self.screensaver_widget (i.e., an object instantiated from ScreenSaverWidget)
|
||||
local super = getmetatable(this)
|
||||
-- super is the class object of self.screensaver_widget (i.e., ScreenSaverWidget)
|
||||
if super.onCloseWidget then
|
||||
super.onCloseWidget(this)
|
||||
end
|
||||
-- self is ScreenSaver (upvalue)
|
||||
self:cleanup()
|
||||
end
|
||||
|
||||
UIManager:show(self.screensaver_widget, "full")
|
||||
end
|
||||
|
||||
@@ -824,17 +812,6 @@ function Screensaver:show()
|
||||
if with_gesture_lock then
|
||||
self.screensaver_lock_widget = ScreenSaverLockWidget:new{}
|
||||
|
||||
-- If we don't have a ScreenSaverWidget handling cleanup for us, it'll fall to us...
|
||||
if not self.screensaver_widget then
|
||||
self.screensaver_lock_widget.onCloseWidget = function(this)
|
||||
local super = getmetatable(this)
|
||||
if super.onCloseWidget then
|
||||
super.onCloseWidget(this)
|
||||
end
|
||||
self:cleanup()
|
||||
end
|
||||
end
|
||||
|
||||
-- It's flagged as modal, so it'll stay on top
|
||||
UIManager:show(self.screensaver_lock_widget)
|
||||
end
|
||||
|
||||
@@ -120,6 +120,9 @@ function ScreenSaverLockWidget:onCloseWidget()
|
||||
local Screensaver = require("ui/screensaver")
|
||||
if not Screensaver.screensaver_widget then
|
||||
UIManager:setDirty("all", "full")
|
||||
|
||||
-- And take care of cleanup in its place, too
|
||||
Screensaver:cleanup()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -97,6 +97,10 @@ function ScreenSaverWidget:onCloseWidget()
|
||||
-- Will come after the Resume event, iff screensaver_delay is set.
|
||||
-- Comes *before* it otherwise.
|
||||
UIManager:broadcastEvent(Event:new("OutOfScreenSaver"))
|
||||
|
||||
-- NOTE: ScreenSaver itself is neither a Widget nor an instantiated object, so make sure we cleanup behind us...
|
||||
local Screensaver = require("ui/screensaver")
|
||||
Screensaver:cleanup()
|
||||
end
|
||||
|
||||
function ScreenSaverWidget:onResume()
|
||||
|
||||
Reference in New Issue
Block a user