mirror of
https://github.com/wez/wezterm.git
synced 2024-12-27 15:37:29 +03:00
223ba32de2
test scenario is: ``` bash -c "sleep 5; for((i=0;i<30;i++)); do xdotool keydown --delay 0 Shift_L keydown --delay 0 9 keyup --delay 0 Shift_L keyup --delay 0 9; done" ``` That should cause a series of `(` characters to be emitted, but prior to this commit is was usually mostly `9`'s. What's changing here is: * We copy the pertinent fields from the last xcb StateNotify event. That ostensibly has the current modifier and layout state, but because it comes from the X server, it doesn't factor in knowledge from the IME. * When processing an XCB key event, compute the current modifier mask and override the XKB state with it. * Now XKB will produce correct information about the key syms * Restore the modifier state from the saved StateNotify information. refs: https://github.com/wez/wezterm/pull/4151 refs: https://github.com/wez/wezterm/issues/4615 refs: https://github.com/fcitx/fcitx5/issues/893 refs: https://github.com/ibus/ibus/issues/2600 refs: https://github.com/wez/wezterm/issues/3840 |
||
---|---|---|
.. | ||
examples | ||
src | ||
build.rs | ||
Cargo.toml | ||
LICENSE.md |