Bug 104323

Summary: Redirect keys not sending XKB_STATE_NOTIFY
Product: xorg Reporter: Quentin "Sardem FF7" Glidic <sardemff7+freedesktop>
Component: Server/Input/XKBAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Quentin "Sardem FF7" Glidic 2017-12-18 16:41:50 UTC
While working on rofi[1] to port it to libxkbcommon, we had several regressions for uncommon XKB features. One of them is key redirects[2], that should actually happen entirely in the X server, but some detail kind of leaked.

In the linked issue, the user is using a keymap where AltGr+S triggers Left (the key labeled S, it’s not S in the keymap). But there is no 
XKB_STATE_NOTIFY event sent before the KEY_PRESS event, while the latter does carry the updated state (no AltGr).
I currently work around that by calling xkb_state_update_mask() with the KEY_PRESS state (and setting it back right after I get the keysym).
I spoke with a libxkbcommon developer, and he believes the X server is supposed to send an XKB_STATE_NOTIFY to properly update the mask without the KEY_PRESS state trick.

Thanks,

[1] https://github.com/DaveDavenport/rofi
[2] https://github.com/DaveDavenport/rofi/issues/611
Comment 1 ahem44 2017-12-21 16:57:12 UTC

    
Comment 2 GitLab Migration User 2018-12-13 18:38:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/300.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.