Commit 34013c37 authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

sdl2: track kbd modifier state unconditionally



For both grapical and text consoles.

Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Message-id: 20180321135041.15768-3-kraxel@redhat.com
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent da024b1e
Loading
Loading
Loading
Loading
+21 −18
Original line number Diff line number Diff line
@@ -60,23 +60,7 @@ void sdl2_process_key(struct sdl2_console *scon,

    qcode = qemu_input_map_usb_to_qcode[ev->keysym.scancode];

    if (!qemu_console_is_graphic(con)) {
        if (ev->type == SDL_KEYDOWN) {
            switch (ev->keysym.scancode) {
            case SDL_SCANCODE_RETURN:
                kbd_put_keysym_console(con, '\n');
                break;
            case SDL_SCANCODE_BACKSPACE:
                kbd_put_keysym_console(con, QEMU_KEY_BACKSPACE);
                break;
            default:
                kbd_put_qcode_console(con, qcode, false);
                break;
            }
        }
        return;
    }

    /* modifier state tracking */
    switch (ev->keysym.scancode) {
#if 0
    case SDL_SCANCODE_NUMLOCKCLEAR:
@@ -99,8 +83,27 @@ void sdl2_process_key(struct sdl2_console *scon,
        } else {
            modifiers_state[ev->keysym.scancode] = 1;
        }
        /* fall though */
        break;
    default:
        /* nothing */
        break;
    }

    if (!qemu_console_is_graphic(con)) {
        if (ev->type == SDL_KEYDOWN) {
            switch (ev->keysym.scancode) {
            case SDL_SCANCODE_RETURN:
                kbd_put_keysym_console(con, '\n');
                break;
            case SDL_SCANCODE_BACKSPACE:
                kbd_put_keysym_console(con, QEMU_KEY_BACKSPACE);
                break;
            default:
                kbd_put_qcode_console(con, qcode, false);
                break;
            }
        }
    } else {
        qemu_input_event_send_key_qcode(con, qcode,
                                        ev->type == SDL_KEYDOWN);
    }