From 656282d245b49b84d4a1a47d7b7ede482d541776 Mon Sep 17 00:00:00 2001 From: Keno Fischer Date: Wed, 13 Jun 2018 19:51:56 -0400 Subject: [PATCH 1/2] ui: darwin: gtk: Add missing input keymap In appears the input keymap for osx was forgotten in the commit that converted the gtk frontend to keycodemapdb. Add it. Fixes: 2ec78706 ("ui: convert GTK and SDL1 frontends to keycodemapdb") CC: Daniel P. Berrange Signed-off-by: Keno Fischer Message-id: 1528933916-40670-1-git-send-email-keno@juliacomputing.com Signed-off-by: Gerd Hoffmann --- Makefile | 1 + include/ui/input.h | 3 +++ ui/input-keymap.c | 1 + 3 files changed, 5 insertions(+) diff --git a/Makefile b/Makefile index 6c6664d9a3..bdae3133fb 100644 --- a/Makefile +++ b/Makefile @@ -322,6 +322,7 @@ KEYCODEMAP_FILES = \ ui/input-keymap-xorgkbd-to-qcode.c \ ui/input-keymap-xorgxquartz-to-qcode.c \ ui/input-keymap-xorgxwin-to-qcode.c \ + ui/input-keymap-osx-to-qcode.c \ $(NULL) GENERATED_FILES += $(KEYCODEMAP_FILES) diff --git a/include/ui/input.h b/include/ui/input.h index 16395ab8f2..34ebc67c5a 100644 --- a/include/ui/input.h +++ b/include/ui/input.h @@ -116,4 +116,7 @@ extern const guint16 qemu_input_map_xorgxquartz_to_qcode[]; extern const guint qemu_input_map_xorgxwin_to_qcode_len; extern const guint16 qemu_input_map_xorgxwin_to_qcode[]; +extern const guint qemu_input_map_osx_to_qcode_len; +extern const guint16 qemu_input_map_osx_to_qcode[]; + #endif /* INPUT_H */ diff --git a/ui/input-keymap.c b/ui/input-keymap.c index 87cc301b7a..db5ccff5ad 100644 --- a/ui/input-keymap.c +++ b/ui/input-keymap.c @@ -21,6 +21,7 @@ #include "ui/input-keymap-xorgkbd-to-qcode.c" #include "ui/input-keymap-xorgxquartz-to-qcode.c" #include "ui/input-keymap-xorgxwin-to-qcode.c" +#include "ui/input-keymap-osx-to-qcode.c" int qemu_input_linux_to_qcode(unsigned int lnx) { From 64bf97e56f3ab44d587c92c40503d646273a24df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= Date: Wed, 13 Jun 2018 19:27:07 +0200 Subject: [PATCH 2/2] sdl2: restore window dimensions by resize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit instead of destroying and recreating window, fixes segfault caused by handle_keyup trying to access no more existing window when using Ctrl-Alt-U to restore window "un-scaled" dimensions Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff7f92b80 (LWP 3711)] handle_keyup (ev=0x7fffffffd010) at ui/sdl2.c:416 416 scon->ignore_hotkeys = false; (gdb) bt #0 handle_keyup (ev=0x7fffffffd010) at ui/sdl2.c:416 #1 sdl2_poll_events (scon=0x100fee5a8) at ui/sdl2.c:608 #2 0x0000000100585bf2 in dpy_refresh (s=0x101ad3e00) at ui/console.c:1658 #3 gui_update (opaque=0x101ad3e00) at ui/console.c:205 #4 0x0000000100690f2c in timerlist_run_timers (timer_list=0x100ede130) at util/qemu-timer.c:536 #5 0x0000000100691177 in qemu_clock_run_timers (type=QEMU_CLOCK_REALTIME) at util/qemu-timer.c:547 #6 qemu_clock_run_all_timers () at util/qemu-timer.c:674 #7 0x0000000100691651 in main_loop_wait (nonblocking=) at util/main-loop.c:503 #8 0x00000001003d650f in main_loop () at vl.c:1848 #9 0x0000000100289681 in main (argc=, argv=, envp=) at vl.c:4605 Signed-off-by: Amadeusz Sławiński Message-id: 20180613172707.31530-1-amade@asmblr.net Signed-off-by: Gerd Hoffmann --- ui/sdl2.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ui/sdl2.c b/ui/sdl2.c index a0f9b16bc1..3ae4719c32 100644 --- a/ui/sdl2.c +++ b/ui/sdl2.c @@ -371,8 +371,7 @@ static void handle_keydown(SDL_Event *ev) } break; case SDL_SCANCODE_U: - sdl2_window_destroy(scon); - sdl2_window_create(scon); + sdl2_window_resize(scon); if (!scon->opengl) { /* re-create scon->texture */ sdl2_2d_switch(&scon->dcl, scon->surface);