Index: share/applets/ScreenSavers/ScreenSaversApplet.lua =================================================================== --- share/applets/ScreenSavers/ScreenSaversApplet.lua (revision 7745) +++ share/applets/ScreenSavers/ScreenSaversApplet.lua (working copy) @@ -529,10 +529,6 @@ self.active = {} - if not self:isSoftPowerOn() then - jiveMain:setSoftPowerState("on") - end - for i, window in ipairs(oldActive) do _deactivate(self, window, self.demoScreensaver) end Index: share/jive/JiveMain.lua =================================================================== --- share/jive/JiveMain.lua (revision 7745) +++ share/jive/JiveMain.lua (working copy) @@ -222,6 +222,17 @@ currentPlayer:setPower(false) end appletManager:callService("activateScreensaver") + + self._softPowerHandler = Framework:addListener(ACTION | EVENT_SCROLL, function(event) + local action = event:getType() == ACTION and event:getAction() + + if action ~= "power" then + self:setSoftPowerState("on") + end + + return EVENT_UNUSED + end) + elseif _softPowerState == "on" then log:info("Turn soft power on") if currentPlayer and currentPlayer:isConnected() then @@ -234,6 +245,7 @@ appletManager:callService("deactivateScreensaver") appletManager:callService("restartScreenSaverTimer") + Framework:removeListener(self._softPowerHandler) else log:error("unknown desired soft power state: ", _softPowerState) end