https://bugs.kde.org/show_bug.cgi?id=509714

Vlad Zahorodnii <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|https://invent.kde.org/plas |https://invent.kde.org/plas
                   |ma/kwin/-/commit/290fdb8116 |ma/kwin/-/commit/c4b0a90636
                   |64ae53e3f49a95ee5218cf4308c |171f6b61f3c821dd86c88aaed8b
                   |6c6                         |a1c

--- Comment #12 from Vlad Zahorodnii <[email protected]> ---
Git commit c4b0a90636171f6b61f3c821dd86c88aaed8ba1c by Vlad Zahorodnii.
Committed on 23/10/2026 at 06:48.
Pushed by vladz into branch 'Plasma/6.8'.

plugins/stickykeys: Latch and lock modifiers on key release

The modifiers are latched and locked on key press. However, it looks
like xkb_state_update_key() can reset the locked state. In other words,

  Press Shift:
    - xkb_state_update_key(Shift, pressed)
    - the sticky filter latches the Shift modifier

  Release Shift:
    - xkb_state_update_key(Shift, released)

  Press Shift:
    - xkb_state_update_key(Shift, pressed)
    - the sticky filter locks the Shift modifier

  Release Shift:
    - xkb_state_update_key(Shift, released)
      - xkb also resets the locked state of the Shift modifier

This results in double tapping a modifier not making the modifier
persistent. For example, "SHIFT SHIFT a b c" produces "Abc" instead of
"ABC".

In order to address the issue, this change makes the input filter latch
and lock modifiers on key release after xkb_state_update_key(). This
also matches what mutter appears to do as well.
(cherry picked from commit 290fdb811664ae53e3f49a95ee5218cf4308c6c6)

M  +28   -29   autotests/integration/sticky_keys_test.cpp
M  +13   -12   src/plugins/stickykeys/stickykeys.cpp

https://invent.kde.org/plasma/kwin/-/commit/c4b0a90636171f6b61f3c821dd86c88aaed8ba1c

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to