From patchwork Mon Sep 23 22:06:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 1166219 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=vivier.eu Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46cdjN5tDKz9s00 for ; Tue, 24 Sep 2019 08:07:36 +1000 (AEST) Received: from localhost ([::1]:36050 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iCWUY-0001qF-PN for incoming@patchwork.ozlabs.org; Mon, 23 Sep 2019 18:07:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56197) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iCWUE-0001pw-5N for qemu-devel@nongnu.org; Mon, 23 Sep 2019 18:07:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iCWUC-0006nT-Vx for qemu-devel@nongnu.org; Mon, 23 Sep 2019 18:07:14 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:36271) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iCWUC-0006fv-Mh for qemu-devel@nongnu.org; Mon, 23 Sep 2019 18:07:12 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MfYHQ-1hfgmD0W4W-00fxIH; Tue, 24 Sep 2019 00:07:01 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PATCH] ui: fix keymap file search in input-barrier object Date: Tue, 24 Sep 2019 00:06:58 +0200 Message-Id: <20190923220658.27007-1-laurent@vivier.eu> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:mSi8BYRgH1OAeHMEnXJMtlW5a8MRBrybG0+fUaQdttbIPIJiY/n /cX3PelUfTEgjeLFTVVjH7zpFSUiu/8hTV/7C2Kkiv8fFnzMlcxJyYZ3X4tAmf4CdG+FteM I1Ej8Wjpmq5vxdhveGG1awqPPL+YO1/bdQmBSmCGoMGaZUl/cdHt5rV+KHhnx4SrtNOE6UG Wld4IzQRF3YssCmug2eOQ== X-UI-Out-Filterresults: notjunk:1; V03:K0:IU5MZxMyJaQ=:M+O7TgQGFZEg+ZaUVGssQN agT/SL4JJDujNIJ68ZTU+lXuzvEn8GEzhIYeAfKWJwBvNLlm2AsZR9cz70LwtzwFCer2PzGHH hPFO9/Ige+JwPbetNwRMplMI4xBAgYNqzt/hKUsp3kSa0i0SIs1iXn+sRiYZKp8wOjuIC1u7Q Ln62YHYR3dvGhr6lKr0TJYqMHfjt59Bs+YjLBEtOs2GLkIfxmNkppM7mt5WBrhPYRpJvhthFv YJl6frr4lVM2RJQuBt2In4Iog8UjCyLHiqbHTD40gabprTmteCankRtYalmJNtGHLRiVw/ZqI ivtDYOa/SyMNZKvVPtK6undJ+dKdMRFHZVwaj2W3Qrie+oeTnKcCRiAmrsuw+xbOCVxe00esG shv0n+Ai/I1DPyS/JmEaOpRWQmtWGDmBDXwtq7/uQXH2vNfcktClMPulDjouVxC7/5OTzZJB8 drCaOZDhKVdwU3Z+m14iyuBlQQI2cRQwWYcgBTK+cGPKPe2bFSzNjFSP7WJw1QKPObqoLVNK9 TeBOyCKmq6jdi9RzVsfB4NFJ6q13A4ybXDpDl1H39P1YIv6Vh92UeKGI9vL6YJueNr/rbrEZM 54dMF31l+XsTUZbT1a4s9U7OfA6pZVtsDtDBuiRwTu04eCyAqiPUuB6riELfYA5fcB4hJ9WE6 K4sP4AC86mdM7CzJ731CuONitCpy+zAnqR+EK3oOKpNGmhAiBUztLn3XXVU7CtRf5VjKSxX/f C9HV5AhXg0BClzk3/UTPweITjdDb+MHHlNBcENVGWz+LIFz8c8ussTiiTI6ZTOZySuE5MJiEI qIy8swcjKFjmbty0PnSr36g+RXCU1CG7LC7IjWRSCqFfmUYyuza7o7TEQc//Yu8KALwXOmAgr Mh5V6h7fk/VWWVPbht4A== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.126.187 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Gerd Hoffmann , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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 Fixes: 6105683da35b ("ui: add an embedded Barrier client") Signed-off-by: Laurent Vivier Reviewed-by: Anthony PERARD --- 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 = {