From 63c71c852d41de994d4db28aee52ca9286e87c39 Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 15 May 2023 15:08:25 +0100 Subject: [PATCH] Refresh mouse over in menu instantly --- src/Dodge/Update/Input/ScreenLayer.hs | 11 ++++++----- src/Dodge/Update/Scroll.hs | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Dodge/Update/Input/ScreenLayer.hs b/src/Dodge/Update/Input/ScreenLayer.hs index 6425d027c..cf0bbf99a 100644 --- a/src/Dodge/Update/Input/ScreenLayer.hs +++ b/src/Dodge/Update/Input/ScreenLayer.hs @@ -42,15 +42,14 @@ optionScreenUpdate :: optionScreenUpdate screen u = (uvScreenLayers . ix 0 . scDisplayTime +~ 1) . refreshOptionsSelectionList + . mouseOverSelectionList . optionScreenDefaultEffect mop . mouseClickOptionsList screen - . mouseOverSelectionList ldps screen . menuWheelEvents . over (uvScreenLayers . _head) (setSelectionListRestriction (u ^. uvConfig)) $ u where mop = _scPositionedMenuOption screen - ldps = _scListDisplayParams screen optionScreenDefaultEffect :: EscapeMenuOption -> Universe -> Universe optionScreenDefaultEffect f u = @@ -79,8 +78,11 @@ mouseClickOptionsList screen u = fromMaybe u $ do return $ f u _ -> u -mouseOverSelectionList :: ListDisplayParams -> ScreenLayer -> Universe -> Universe -mouseOverSelectionList ldps screen u = fromMaybe u $ do +mouseOverSelectionList :: Universe -> Universe +mouseOverSelectionList u = fromMaybe u $ do + screen <- u ^? uvScreenLayers . ix 0 + ldps <- screen ^? scListDisplayParams + let ymax = maybe 0 length $ screen ^? scSelectionList . slItems yi <- ldpVerticalSelection (u ^. uvConfig) ldps (u ^. uvWorld . input . mousePos) guard $ mmoving || (_scDisplayTime screen <= 1) let myi = do @@ -91,7 +93,6 @@ mouseOverSelectionList ldps screen u = fromMaybe u $ do isselectable yi = fromMaybe False $ u ^? uvScreenLayers . _head . scSelectionList . slItems . ix yi . siIsSelectable - ymax = maybe 0 length $ screen ^? scSelectionList . slItems mmoving = u ^. uvWorld . input . mouseMoving ldpVerticalSelection :: Configuration -> ListDisplayParams -> Point2 -> Maybe Int diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index e9821d72c..94fb9a3db 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -103,8 +103,8 @@ terminalWheelEvent yi tmid w scrollRBOption :: Int -> Int -> Int -> Int scrollRBOption dy ymax - | dy < 0 = (min (ymax -1) . subtract dy) - | dy > 0 = (max 0 . subtract dy) + | dy < 0 = min (ymax -1) . subtract dy + | dy > 0 = max 0 . subtract dy | otherwise = id moveTweakSel :: Int -> World -> World