aboutsummaryrefslogtreecommitdiff
path: root/harness/src
diff options
context:
space:
mode:
Diffstat (limited to 'harness/src')
-rw-r--r--harness/src/plugin.c2
-rw-r--r--harness/src/wl.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/harness/src/plugin.c b/harness/src/plugin.c
index b46cb5f..3c18d03 100644
--- a/harness/src/plugin.c
+++ b/harness/src/plugin.c
@@ -1,6 +1,8 @@
#include "plugin.h"
#include "foreign_intf.h"
+#include <sys/stat.h>
+#include <unistd.h>
#include <ctype.h>
#include <dlfcn.h>
#include <pthread.h>
diff --git a/harness/src/wl.c b/harness/src/wl.c
index 3f00e06..cdc3447 100644
--- a/harness/src/wl.c
+++ b/harness/src/wl.c
@@ -186,12 +186,17 @@ static void keyboard_handle_key(struct wl_listener *listener, void *data)
int nsyms = xkb_state_key_get_syms(keyboard->device->keyboard->xkb_state,
keycode, &syms);
uint32_t modifiers = wlr_keyboard_get_modifiers(keyboard->device->keyboard);
+ uint32_t codepoint;
/* Pass the information along to the plugin for the plugin to handle. The
* plugin will return via 'handled' whether or not the key event was handled
* or not. */
int handled = 0;
- plugin_call_update_state(server->plugin, plugin_handle_keybinding, event,
- modifiers, syms[0], &handled);
+ if (nsyms > 0) {
+ codepoint =
+ xkb_state_key_get_utf32(keyboard->device->keyboard->xkb_state, keycode);
+ plugin_call_update_state(server->plugin, plugin_handle_keybinding, event,
+ modifiers, syms[0], codepoint, &handled);
+ }
if (!handled) {
/* Otherwise, we pass it along to the client. */