Commit 35921860 authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

kbd-state: don't block auto-repeat events



Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
Message-id: 20190220100235.20914-1-kraxel@redhat.com
parent 2e68b862
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -42,14 +42,18 @@ void qkbd_state_key_event(QKbdState *kbd, QKeyCode qcode, bool down)
{
    bool state = test_bit(qcode, kbd->keys);

    if (state == down) {
    if (down == false  /* got key-up event   */ &&
        state == false /* key is not pressed */) {
        /*
         * Filter out events which don't change the keyboard state.
         * Filter out suspicious key-up events.
         *
         * Most notably this allows to simply send along all key-up
         * events, and this function will filter out everything where
         * the corresponding key-down event wasn't send to the guest,
         * for example due to being a host hotkey.
         * This allows simply sending along all key-up events, and
         * this function will filter out everything where the
         * corresponding key-down event wasn't sent to the guest, for
         * example due to being a host hotkey.
         *
         * Note that key-down events on already pressed keys are *not*
         * suspicious, those are keyboard autorepeat events.
         */
        return;
    }