packages feed

manatee 0.0.8 → 0.0.9

raw patch · 2 files changed

+36/−13 lines, 2 files

Files

Manatee/Daemon.hs view
@@ -181,17 +181,18 @@    ]  -- | Interactivebar keymap.-interactiveKeymap :: EditableClass ed => Map Text (ed -> IO ())+interactiveKeymap :: Map Text (Environment -> Entry -> IO ()) interactiveKeymap =   M.fromList-       [("Tab",          editableExpandCompletion)-       ,("BackSpace",    editableDeleteBackwardChar)-       ,("M-,",          editableDeleteBackwardChar)-       ,("M-<",          editableDeleteBackwardWord)-       ,("M-d",          editableDeleteAllText)-       ,("M-x",          editableCutClipboard)-       ,("M-c",          editableCopyClipboard)-       ,("M-v",          editablePasteClipboard)]+       [("Tab",          \ _ ed -> editableExpandCompletion ed)+       ,("BackSpace",    \ _ ed -> editableDeleteBackwardChar ed)+       ,("M-,",          \ _ ed -> editableDeleteBackwardChar ed)+       ,("M-<",          \ _ ed -> editableDeleteBackwardWord ed)+       ,("M-d",          \ _ ed -> editableDeleteAllText ed)+       ,("M-x",          \ _ ed -> editableCutClipboard ed)+       ,("M-c",          \ _ ed -> editableCopyClipboard ed)+       ,("M-v",          interactivebarPasteClipboard)+       ]  -- | Local keymap for extension. localKeymap :: Keymap@@ -761,20 +762,42 @@ -- | Handle interactivebar key press event.   handleInteractivebarKeyPress :: Environment -> Text -> Interactivebar -> IO () handleInteractivebarKeyPress env keystoke bar = do-  let client = envDaemonClient env-      entry = interactivebarEntry bar+  -- Get entry.+  let entry = interactivebarEntry bar   -- Focus anything input entry.   editableFocus entry   -- Do action.   isChanged <-        editableIsChanged entry $           case M.lookup keystoke interactiveKeymap of-            Just action -> action entry+            Just action -> action env entry             _ ->                  -- Insert character.                 when (T.length keystoke == 1) $ do                      unselectText <- editableGetUnselectText entry                      editableSetText entry (unselectText ++ T.unpack keystoke)+  -- Send key press signal.+  sendAnythingViewKeyPress env entry keystoke isChanged++-- | Paste clipboard to interactivebar.+interactivebarPasteClipboard :: Environment -> Entry -> IO ()+interactivebarPasteClipboard env ed = do+  clipboard <- widgetGetClipboard ed selectionClipboard+  clipboardRequestText clipboard $ \ text ->+    text ?>= \ content -> do+      -- Paste data from clipboard.+      pos <- editableGetPosition ed+      editableInsertText ed content pos+      editableSetPosition ed (pos + length content)++      -- Send key press signal.+      sendAnythingViewKeyPress env ed "" True++-- | Send anything key press.+sendAnythingViewKeyPress :: EditableClass ed => Environment -> ed -> Text -> Bool -> IO ()+sendAnythingViewKeyPress env entry keystoke isChanged = do+  -- Get client.+  let client = envDaemonClient env   -- Get input string.   allText <- editableGetAllText entry   unselectText <- editableGetUnselectText entry
manatee.cabal view
@@ -1,5 +1,5 @@ name:			manatee-version:		0.0.8+version:		0.0.9 Cabal-Version:	>= 1.6 license:		GPL-3 license-file:	LICENSE