From 0ed02e9676a6d5e1b81ee473afa17e4c2e8f7c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 14 Jul 2020 08:52:42 +0200 Subject: [PATCH] input: keyboard: keymap: use xkb_keymap_new_from_buffer() --- input.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/input.c b/input.c index c7fd3162..74c49dc6 100644 --- a/input.c +++ b/input.c @@ -215,6 +215,8 @@ keyboard_keymap(void *data, struct wl_keyboard *wl_keyboard, return; } + while (map_str[size - 1] == '\0') + size--; if (seat->kbd.xkb_compose_state != NULL) { xkb_compose_state_unref(seat->kbd.xkb_compose_state); @@ -246,8 +248,8 @@ keyboard_keymap(void *data, struct wl_keyboard *wl_keyboard, tll_free(seat->kbd.bindings.search); seat->kbd.xkb = xkb_context_new(XKB_CONTEXT_NO_FLAGS); - seat->kbd.xkb_keymap = xkb_keymap_new_from_string( - seat->kbd.xkb, map_str, XKB_KEYMAP_FORMAT_TEXT_V1, + seat->kbd.xkb_keymap = xkb_keymap_new_from_buffer( + seat->kbd.xkb, map_str, size, XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS); /* TODO: initialize in enter? */