@@ -1,3 +1,4 @@
1{-# LANGUAGE ScopedTypeVariables #-}
2{-# LANGUAGE ScopedTypeVariables #-}
2{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE PatternSynonyms #-}
4{-# LANGUAGE PatternSynonyms #-}
@@ -16,15 +17,26 @@
16module Language.Javascript.JSaddle.WebKitGTK (
17module Language.Javascript.JSaddle.WebKitGTK (
17 -- * Running JSM in a WebView
18 -- * Running JSM in a WebView
19 , runInWebView
21 , runInWebView
22import Control.Monad (when, void)
33import Control.Monad (when, void)
23import qualified Control.Exception as E (catch)
34import qualified Control.Exception as E (catch)
24import Control.Exception (SomeException(..))
35import Control.Exception (SomeException(..))
25import Control.Concurrent (forkIO, yield)
36import Control.Concurrent (forkIO, yield)
27−import System.Posix.Signals (installHandler)
38+import System.Posix.Signals
39+ (Handler(..), keyboardSignal, installHandler)
28import System.Directory (getCurrentDirectory)
40import System.Directory (getCurrentDirectory)
30import Data.Monoid ((<>))
42import Data.Monoid ((<>))
@@ -200,12 +212,14 @@ addJSaddleHandler ctxRef processResult = do
200 jsvaluemakeundefined ctxRef
212 jsvaluemakeundefined ctxRef
202jsaddleJs :: LB.ByteString
214jsaddleJs :: LB.ByteString
203−jsaddleJs = ghcjsHelpers <> "\
215+jsaddleJs = ghcjsHelpers <> mconcat
204− \(function() {\n\
216+ [ "(function() {\n"
205− \ " <> initState <> "\n\
217+ , initState
206− \ return function(batchJSON) {\n\
218+ , "\nreturn function(batchJSON) {\n"
207− \ var batch = JSON.parse(batchJSON);\n\
219+ , " var batch = JSON.parse(batchJSON);\n"
208− \ " <> runBatch (\a -> "window.jsaddleCallback(JSON.stringify(" <> a <> "));") <> "\
220+ , runBatch (\a -> "window.jsaddleCallback(JSON.stringify(" <> a <> "));\n")
209− \ };\n\
221+ , "};\n"
210− \})()\n\
222+ , "})()\n"