[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] ui: fix keymap file search in input-barrier object
From: |
Laurent Vivier |
Subject: |
[PATCH] ui: fix keymap file search in input-barrier object |
Date: |
Tue, 24 Sep 2019 00:06:58 +0200 |
If we try to start QEMU with "-k en-us", qemu prints a message and exits
with:
qemu-system-i386: could not read keymap file: 'en-us'
It's because this function is called way too early, before
qemu_add_data_dir() is called, and so qemu_find_file() fails.
To fix that, move init_keyboard_layout() from the class init function to the
instance init function.
Reported-by: Anthony PERARD <address@hidden>
Fixes: 6105683da35b ("ui: add an embedded Barrier client")
Signed-off-by: Laurent Vivier <address@hidden>
---
ui/input-barrier.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/ui/input-barrier.c b/ui/input-barrier.c
index a2c961f285a4..fe35049b83a2 100644
--- a/ui/input-barrier.c
+++ b/ui/input-barrier.c
@@ -682,6 +682,13 @@ static void input_barrier_instance_init(Object *obj)
{
InputBarrier *ib = INPUT_BARRIER(obj);
+ /* always use generic keymaps */
+ if (keyboard_layout && !kbd_layout) {
+ /* We use X11 key id, so use VNC name2keysym */
+ kbd_layout = init_keyboard_layout(name2keysym, keyboard_layout,
+ &error_fatal);
+ }
+
ib->saddr.type = SOCKET_ADDRESS_TYPE_INET;
ib->saddr.u.inet.host = g_strdup("localhost");
ib->saddr.u.inet.port = g_strdup("24800");
@@ -719,13 +726,6 @@ static void input_barrier_class_init(ObjectClass *oc, void
*data)
UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
ucc->complete = input_barrier_complete;
-
- /* always use generic keymaps */
- if (keyboard_layout) {
- /* We use X11 key id, so use VNC name2keysym */
- kbd_layout = init_keyboard_layout(name2keysym, keyboard_layout,
- &error_fatal);
- }
}
static const TypeInfo input_barrier_info = {
--
2.21.0
- [PATCH] ui: fix keymap file search in input-barrier object,
Laurent Vivier <=