@@ -144,6 +144,7 @@ import Data.String (IsString)
144144import Data.Text (Text)
145145import Foreign.JavaScript.Internal.Utils
146146import Foreign.JavaScript.TH
147+import GHCJS.DOM.ClipboardEvent as ClipboardEvent
147148import GHCJS.DOM.Document (Document, createDocumentFragment, createElement, createElementNS, createTextNode, createComment)
148149import GHCJS.DOM.Element (getScrollTop, removeAttribute, removeAttributeNS, setAttribute, setAttributeNS, hasAttribute)
149150import GHCJS.DOM.EventM (EventM, event, on)
@@ -179,6 +180,7 @@ import qualified Data.IntMap.Strict as IntMap
179180import qualified Data.Map as Map
180181import qualified Data.Text as T
181182import qualified GHCJS.DOM as DOM
183+import qualified GHCJS.DOM.DataTransfer as DataTransfer
182184import qualified GHCJS.DOM.DocumentAndElementEventHandlers as Events
183185import qualified GHCJS.DOM.DocumentOrShadowRoot as Document
184186import qualified GHCJS.DOM.Element as Element
@@ -2255,7 +2257,7 @@ defaultDomEventHandler e evt = fmap (Just . EventResult) $ case evt of
22552257 Beforecopy -> return ()
22562258 Copy -> return ()
22572259 Beforepaste -> return ()
2258− Paste -> return ()
2260+ Paste -> getPasteData
22592261 Reset -> return ()
22602262 Search -> return ()
22612263 Selectstart -> return ()
@@ -2305,7 +2307,7 @@ defaultDomWindowEventHandler w evt = fmap (Just . EventResult) $ case evt of
23052307 Beforecopy -> return ()
23062308 Copy -> return ()
23072309 Beforepaste -> return ()
2308− Paste -> return ()
2310+ Paste -> getPasteData
23092311 Reset -> return ()
23102312 Search -> return ()
23112313 Selectstart -> return ()
@@ -2582,6 +2584,15 @@ getMouseEventCoords = do
25822584 e <- event
25832585 bisequence (getClientX e, getClientY e)
25842586
2587+{-# INLINABLE getPasteData #-}
2588+getPasteData :: EventM e ClipboardEvent (Maybe Text)
2589+getPasteData = do
2590+ e <- event
2591+ mdt <- ClipboardEvent.getClipboardData e
2592+ case mdt of
2593+ Nothing -> return Nothing
2594+ Just dt -> Just <$> DataTransfer.getData dt ("text" :: Text)
2595+
25852596{-# INLINABLE getTouchEvent #-}
25862597getTouchEvent :: EventM e TouchEvent TouchEventResult
25872598getTouchEvent = do