diff --git a/keyboard_input.cpp b/keyboard_input.cpp index e03026b7df..0c279e631f 100644 --- a/keyboard_input.cpp +++ b/keyboard_input.cpp @@ -197,10 +197,9 @@ void KeyboardInputRedirection::processKey(uint32_t key, InputRedirection::Keyboa Q_UNREACHABLE(); } + const quint32 previousLayout = m_xkb->currentLayout(); if (!autoRepeat) { - const quint32 previousLayout = m_xkb->currentLayout(); m_xkb->updateKey(key, state); - m_keyboardLayout->checkLayoutChange(previousLayout); } const xkb_keysym_t keySym = m_xkb->currentKeysym(); @@ -222,6 +221,8 @@ void KeyboardInputRedirection::processKey(uint32_t key, InputRedirection::Keyboa m_input->processFilters(std::bind(&InputEventFilter::keyEvent, std::placeholders::_1, &event)); m_xkb->forwardModifiers(); + + m_keyboardLayout->checkLayoutChange(previousLayout); } void KeyboardInputRedirection::processModifiers(uint32_t modsDepressed, uint32_t modsLatched, uint32_t modsLocked, uint32_t group)