diff options
| author | Josh Rahm <rahm@google.com> | 2024-02-21 12:18:28 -0700 |
|---|---|---|
| committer | Josh Rahm <rahm@google.com> | 2024-02-21 12:18:46 -0700 |
| commit | f070ba42d886025a6988afd1bd847057dca15b27 (patch) | |
| tree | 3723323c514a4334a4f5f17486ebe3efa8fefc6a /src | |
| parent | 22571fc455f50d1774e7abb9a77db3a51182a420 (diff) | |
| download | montis-f070ba42d886025a6988afd1bd847057dca15b27.tar.gz montis-f070ba42d886025a6988afd1bd847057dca15b27.tar.bz2 montis-f070ba42d886025a6988afd1bd847057dca15b27.zip | |
Add the typed codepoint as an argument to the keyboard handler.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Wetterhorn/Core.hs | 3 | ||||
| -rw-r--r-- | src/Wetterhorn/FFI.hs | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/Wetterhorn/Core.hs b/src/Wetterhorn/Core.hs index 16978bb..36b0f82 100644 --- a/src/Wetterhorn/Core.hs +++ b/src/Wetterhorn/Core.hs @@ -78,7 +78,8 @@ data KeyEvent = KeyEvent keycode :: Word32, state :: KeyState, modifiers :: Word32, - keysym :: Word32 + keysym :: Word32, + codepoint :: Char } deriving (Show, Read, Ord, Eq) diff --git a/src/Wetterhorn/FFI.hs b/src/Wetterhorn/FFI.hs index 969f86f..58c1aff 100644 --- a/src/Wetterhorn/FFI.hs +++ b/src/Wetterhorn/FFI.hs @@ -88,6 +88,7 @@ foreign export ccall "plugin_handle_keybinding" Ptr () -> Word32 -> Word32 -> + Word32 -> Ptr CInt -> Wetterhorn -> IO Wetterhorn @@ -96,10 +97,11 @@ pluginHandleKeybinding :: Ptr () -> Word32 -> Word32 -> + Word32 -> Ptr CInt -> Wetterhorn -> IO Wetterhorn -pluginHandleKeybinding eventPtr mods sym = +pluginHandleKeybinding eventPtr mods sym cp = runForeignWithReturn $ \config -> do event <- wio $ runForeignDemarshal eventPtr $ do @@ -114,6 +116,7 @@ pluginHandleKeybinding eventPtr mods sym = (if keyState == (0 :: Word8) then KeyReleased else KeyPressed) mods sym + (toEnum $ fromIntegral cp) (\b -> if b then 1 else 0) <$> keybindingHandler config event foreign export ccall "plugin_handle_surface_map" |