@@ -140,6 +140,7 @@ import Data.Some (Some(..))
140import Data.Text (Text)
140import Data.Text (Text)
141import Foreign.JavaScript.Internal.Utils
141import Foreign.JavaScript.Internal.Utils
142import Foreign.JavaScript.TH
142import Foreign.JavaScript.TH
143+import GHCJS.DOM.ClipboardEvent as ClipboardEvent
143import GHCJS.DOM.Document (Document, createDocumentFragment, createElement, createElementNS, createTextNode, createComment)
144import GHCJS.DOM.Document (Document, createDocumentFragment, createElement, createElementNS, createTextNode, createComment)
144import GHCJS.DOM.Element (getScrollTop, removeAttribute, removeAttributeNS, setAttribute, setAttributeNS, hasAttribute, hasAttributeNS)
145import GHCJS.DOM.Element (getScrollTop, removeAttribute, removeAttributeNS, setAttribute, setAttributeNS, hasAttribute, hasAttributeNS)
145import GHCJS.DOM.EventM (EventM, event, on)
146import GHCJS.DOM.EventM (EventM, event, on)
@@ -175,6 +176,7 @@ import qualified Data.IntMap.Strict as IntMap
175import qualified Data.Map as Map
176import qualified Data.Map as Map
176import qualified Data.Text as T
177import qualified Data.Text as T
177import qualified GHCJS.DOM as DOM
178import qualified GHCJS.DOM as DOM
179+import qualified GHCJS.DOM.DataTransfer as DataTransfer
178import qualified GHCJS.DOM.DocumentAndElementEventHandlers as Events
180import qualified GHCJS.DOM.DocumentAndElementEventHandlers as Events
179import qualified GHCJS.DOM.DocumentOrShadowRoot as Document
181import qualified GHCJS.DOM.DocumentOrShadowRoot as Document
180import qualified GHCJS.DOM.Element as Element
182import qualified GHCJS.DOM.Element as Element
@@ -2239,7 +2241,7 @@ defaultDomEventHandler e evt = fmap (Just . EventResult) $ case evt of
2239 Beforecopy -> return ()
2241 Beforecopy -> return ()
2240 Copy -> return ()
2242 Copy -> return ()
2241 Beforepaste -> return ()
2243 Beforepaste -> return ()
2242− Paste -> return ()
2244+ Paste -> getPasteData
2243 Reset -> return ()
2245 Reset -> return ()
2244 Search -> return ()
2246 Search -> return ()
2245 Selectstart -> return ()
2247 Selectstart -> return ()
@@ -2289,7 +2291,7 @@ defaultDomWindowEventHandler w evt = fmap (Just . EventResult) $ case evt of
2289 Beforecopy -> return ()
2291 Beforecopy -> return ()
2290 Copy -> return ()
2292 Copy -> return ()
2291 Beforepaste -> return ()
2293 Beforepaste -> return ()
2292− Paste -> return ()
2294+ Paste -> getPasteData
2293 Reset -> return ()
2295 Reset -> return ()
2294 Search -> return ()
2296 Search -> return ()
2295 Selectstart -> return ()
2297 Selectstart -> return ()
@@ -2499,7 +2501,7 @@ windowOnEventName en e = case en of
2499 Beforecopy -> const $ return $ return () --TODO
2501 Beforecopy -> const $ return $ return () --TODO
2500 Copy -> const $ return $ return () --TODO
2502 Copy -> const $ return $ return () --TODO
2501 Beforepaste -> const $ return $ return () --TODO
2503 Beforepaste -> const $ return $ return () --TODO
2502− Paste -> const $ return $ return () --TODO
2504+ Paste -> on e Events.paste
2503 Reset -> on e Events.reset
2505 Reset -> on e Events.reset
2504 Search -> on e Events.search
2506 Search -> on e Events.search
2505 Selectstart -> const $ return $ return () --TODO
2507 Selectstart -> const $ return $ return () --TODO
@@ -2566,6 +2568,15 @@ getMouseEventCoords = do
2566 e <- event
2568 e <- event
2567 bisequence (getClientX e, getClientY e)
2569 bisequence (getClientX e, getClientY e)
2571+{-# INLINABLE getPasteData #-}
2572+getPasteData :: EventM e ClipboardEvent Text
2575+ mdt <- ClipboardEvent.getClipboardData e
2577+ Nothing -> return ""
2578+ Just dt -> DataTransfer.getData dt ("text" :: Text)
2569{-# INLINABLE getTouchEvent #-}
2580{-# INLINABLE getTouchEvent #-}
2570getTouchEvent :: EventM e TouchEvent TouchEventResult
2581getTouchEvent :: EventM e TouchEvent TouchEventResult
2571getTouchEvent = do
2582getTouchEvent = do