diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2018-02-22 14:44:42 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2018-02-22 14:44:42 +0000 |
| commit | 0ce9cb913e32d7efed64dc1191a7a490d97cf56e (patch) | |
| tree | 6f4031e47f540b0c3e7a6543b860f261a1384433 /ui/sdl2.c | |
| parent | ff8689611a1d954897d857b28f7ef404e11cfa2c (diff) | |
| parent | abb4f2c9655503f14dc55064f29c4f59b07e96ff (diff) | |
| download | focaccia-qemu-0ce9cb913e32d7efed64dc1191a7a490d97cf56e.tar.gz focaccia-qemu-0ce9cb913e32d7efed64dc1191a7a490d97cf56e.zip | |
Merge remote-tracking branch 'remotes/kraxel/tags/ui-20180222-pull-request' into staging
ui: reverse keymap improvements. sdl2: hotkey fix. opengl: dmabuf fixes. # gpg: Signature made Thu 22 Feb 2018 10:22:58 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ui-20180222-pull-request: keymap: consider modifier state when picking a mapping keymap: record multiple keysym -> keycode mappings keymap: numpad keysyms and keycodes are fixed keymap: use glib hash for kbd_layout_t keymap: make struct kbd_layout_t private to ui/keymaps.c egl-helpers: add alpha channel to texture format egl-headless: cursor_dmabuf: handle NULL cursor console/opengl: split up dpy_gl_cursor ops sdl2: fix hotkey keyup Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'ui/sdl2.c')
| -rw-r--r-- | ui/sdl2.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/ui/sdl2.c b/ui/sdl2.c index 6e96a4a24c..b5a0fa1d13 100644 --- a/ui/sdl2.c +++ b/ui/sdl2.c @@ -39,7 +39,6 @@ static int gui_grab; /* if true, all keyboard/mouse events are grabbed */ static int gui_saved_grab; static int gui_fullscreen; -static int gui_key_modifier_pressed; static int gui_keysym; static int gui_grab_code = KMOD_LALT | KMOD_LCTRL; static SDL_Cursor *sdl_cursor_normal; @@ -331,8 +330,7 @@ static void handle_keydown(SDL_Event *ev) { int win; struct sdl2_console *scon = get_scon_from_window(ev->key.windowID); - - gui_key_modifier_pressed = get_mod_state(); + int gui_key_modifier_pressed = get_mod_state(); if (!scon->ignore_hotkeys && gui_key_modifier_pressed && !ev->key.repeat) { switch (ev->key.keysym.scancode) { @@ -413,18 +411,12 @@ static void handle_keydown(SDL_Event *ev) static void handle_keyup(SDL_Event *ev) { - int mod_state; struct sdl2_console *scon = get_scon_from_window(ev->key.windowID); + int gui_key_modifier_pressed = get_mod_state(); scon->ignore_hotkeys = false; - if (!alt_grab) { - mod_state = (ev->key.keysym.mod & gui_grab_code); - } else { - mod_state = (ev->key.keysym.mod & (gui_grab_code | KMOD_LSHIFT)); - } - if (!mod_state && gui_key_modifier_pressed) { - gui_key_modifier_pressed = 0; + if (!gui_key_modifier_pressed) { gui_keysym = 0; } if (!gui_keysym) { |