From 3ab58407dbdb5d6b595313315a92864a9b76706d Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Fri, 26 Apr 2019 14:28:44 -0400 Subject: minor refactor. --- MeshSketch.hs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'MeshSketch.hs') diff --git a/MeshSketch.hs b/MeshSketch.hs index 571cffe..331d435 100644 --- a/MeshSketch.hs +++ b/MeshSketch.hs @@ -5,6 +5,7 @@ module MeshSketch where import Control.Monad import Data.Coerce +import Data.Functor import Data.IORef import Foreign.C.Types import GI.Gdk @@ -131,16 +132,17 @@ onEvent w st ev = do EventTypeKeyPress -> do kev <- get ev #key - val <- get kev #keyval - if (val `elem` [KEY_N,KEY_n]) then do - modifyIORef' (stSkybox st) $ \n -> (n + 1) `mod` (skyboxCount $ stSkyboxes st) - idx <- readIORef (stSkybox st) - put (skyboxNames (stSkyboxes st) !! idx) - return () - else when (val `elem` [KEY_F,KEY_f]) $ do - put 'F' - stFullscreen st - return () + val <- get kev #keyval <&> \k -> if k > 0x5A then k - 0x20 else k + case val of + KEY_N -> do + modifyIORef' (stSkybox st) $ \n -> (n + 1) `mod` (skyboxCount $ stSkyboxes st) + idx <- readIORef (stSkybox st) + put (skyboxNames (stSkyboxes st) !! idx) + return () + KEY_F -> do + put 'F' + stFullscreen st + _ -> return () e -> return () @@ -153,4 +155,3 @@ mkFullscreenToggle w = do b <- atomicModifyIORef' full $ \b -> (not b, not b) if b then windowFullscreen w else windowUnfullscreen w - -- cgit v1.2.3