Skip to content

Commit 7bc2ff9

Browse files
committed
Merge screen saver functions into a StateVar
1 parent f008e12 commit 7bc2ff9

File tree

2 files changed

+11
-18
lines changed

2 files changed

+11
-18
lines changed

ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
* Add `SDL.Exception` module, exposing `SDLException`
55
* Add joystick POV hat support
66
* Remove deprecated `InitEverything` enumeration
7+
* Merge `isScreenSaverEnabled, `enableScreenSaver`, and `disableScreenSaver`
8+
into a `screenSaverEnabled` StateVar.
79
* Fix issue with `setWindowMode` transitions not working properly between
810
fullscreen and windowed modes.
911

src/SDL/Video.hs

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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
392390
raiseWindow :: MonadIO m => Window -> m ()
393391
raiseWindow (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

Comments
 (0)