qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] ui: fix keymap file search in input-barrier object


From: Laurent Vivier
Subject: Re: [PATCH] ui: fix keymap file search in input-barrier object
Date: Thu, 17 Oct 2019 11:08:38 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0

Ping?

Le 24/09/2019 à 00:06, Laurent Vivier a écrit :
> 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 = {
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]