@@ -61,9 +61,7 @@ module SDL.Video
6161 --
6262 -- Screen savers are disabled by default upon the initialization of the
6363 -- video subsystem.
64- , disableScreenSaver
65- , enableScreenSaver
66- , isScreenSaverEnabled
64+ , screenSaverEnabled
6765
6866 -- * Message Box
6967 , showSimpleMessageBox
@@ -392,23 +390,16 @@ hideWindow (Window w) = Raw.hideWindow w
392390raiseWindow :: MonadIO m => Window -> m ()
393391raiseWindow (Window w) = Raw. raiseWindow w
394392
395- -- | Prevent the screen from being blanked by a screen saver. If you disable the screensaver, it is automatically re-enabled when SDL quits .
393+ -- | Get or set whether to allow the screen to be blanked by a screen saver.
396394--
397- -- See @<https://wiki.libsdl.org/SDL_DisableScreenSaver SDL_DisableScreenSaver>@ for C documentation.
398- disableScreenSaver :: MonadIO m => m ()
399- disableScreenSaver = Raw. disableScreenSaver
400-
401- -- | Allow the screen to be blanked by a screen saver.
402- --
403- -- See @<https://wiki.libsdl.org/SDL_EnableScreenSaver SDL_EnableScreenSaver>@ for C documentation.
404- enableScreenSaver :: MonadIO m => m ()
405- enableScreenSaver = Raw. enableScreenSaver
395+ -- Screen savers are re-enabled, if needed, when SDL quits.
396+ screenSaverEnabled :: StateVar Bool
397+ screenSaverEnabled = makeStateVar (isScreenSaverEnabled) (setScreenSaverEnabled)
398+ where
399+ isScreenSaverEnabled = Raw. isScreenSaverEnabled
406400
407- -- | Check whether screen savers are enabled .
408- --
409- -- See @<https://wiki.libsdl.org/SDL_IsScreenSaverEnabled SDL_IsScreenSaverEnabled>@ for C documentation.
410- isScreenSaverEnabled :: MonadIO m => m Bool
411- isScreenSaverEnabled = Raw. isScreenSaverEnabled
401+ setScreenSaverEnabled True = Raw. enableScreenSaver
402+ setScreenSaverEnabled False = Raw. disableScreenSaver
412403
413404-- | Show a window.
414405--
0 commit comments