@@ -192,6 +192,7 @@ import qualified GHCJS.DOM.TouchEvent as TouchEvent
192import qualified GHCJS.DOM.TouchList as TouchList
192import qualified GHCJS.DOM.TouchList as TouchList
193import qualified GHCJS.DOM.Types as DOM
193import qualified GHCJS.DOM.Types as DOM
194import qualified GHCJS.DOM.Window as Window
194import qualified GHCJS.DOM.Window as Window
195+import qualified GHCJS.DOM.WheelEvent as WheelEvent
195import qualified Reflex.Patch.DMap as PatchDMap
196import qualified Reflex.Patch.DMap as PatchDMap
196import qualified Reflex.Patch.DMapWithMove as PatchDMapWithMove
197import qualified Reflex.Patch.DMapWithMove as PatchDMapWithMove
197import qualified Reflex.Patch.MapWithMove as PatchMapWithMove
198import qualified Reflex.Patch.MapWithMove as PatchMapWithMove
@@ -2249,7 +2250,7 @@ defaultDomEventHandler e evt = fmap (Just . EventResult) $ case evt of
2249 Touchend -> getTouchEvent
2250 Touchend -> getTouchEvent
2250 Touchcancel -> getTouchEvent
2251 Touchcancel -> getTouchEvent
2251 Mousewheel -> return ()
2252 Mousewheel -> return ()
2252− Wheel -> return ()
2253+ Wheel -> getWheelEvent
2254{-# INLINABLE defaultDomWindowEventHandler #-}
2255{-# INLINABLE defaultDomWindowEventHandler #-}
2255defaultDomWindowEventHandler :: DOM.Window -> EventName en -> EventM DOM.Window (EventType en) (Maybe (EventResult en))
2256defaultDomWindowEventHandler :: DOM.Window -> EventName en -> EventM DOM.Window (EventType en) (Maybe (EventResult en))
@@ -2299,7 +2300,7 @@ defaultDomWindowEventHandler w evt = fmap (Just . EventResult) $ case evt of
2299 Touchend -> getTouchEvent
2300 Touchend -> getTouchEvent
2300 Touchcancel -> getTouchEvent
2301 Touchcancel -> getTouchEvent
2301 Mousewheel -> return ()
2302 Mousewheel -> return ()
2302− Wheel -> return ()
2303+ Wheel -> getWheelEvent
2304{-# INLINABLE withIsEvent #-}
2305{-# INLINABLE withIsEvent #-}
2305withIsEvent :: EventName en -> (IsEvent (EventType en) => r) -> r
2306withIsEvent :: EventName en -> (IsEvent (EventType en) => r) -> r
@@ -2608,6 +2609,26 @@ getTouchEvent = do
2608 , _touchEventResult_touches = touches
2609 , _touchEventResult_touches = touches
2612+{-# INLINABLE getWheelEvent #-}
2613+getWheelEvent :: EventM e WheelEvent WheelEventResult
2616+ dx :: Double <- WheelEvent.getDeltaX e
2617+ dy :: Double <- WheelEvent.getDeltaY e
2618+ dz :: Double <- WheelEvent.getDeltaZ e
2619+ deltaMode :: Word <- WheelEvent.getDeltaMode e
2620+ return $ WheelEventResult
2621+ { _wheelEventResult_deltaX = dx
2622+ , _wheelEventResult_deltaY = dy
2623+ , _wheelEventResult_deltaZ = dz
2624+ , _wheelEventResult_deltaMode = case deltaMode of
2628+ -- See https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
2629+ _ -> error "getWheelEvent: impossible encoding"
2611instance MonadSample t m => MonadSample t (HydrationDomBuilderT s t m) where
2632instance MonadSample t m => MonadSample t (HydrationDomBuilderT s t m) where
2612 {-# INLINABLE sample #-}
2633 {-# INLINABLE sample #-}
2613 sample = lift . sample
2634 sample = lift . sample