Consider the following keymap: ```xkb xkb_keymap { xkb_keycodes { <compose> = 135; }; xkb_symbols { key <compose> { [ SetGroup(group = +1) ] }; }; }; ``` When the user presses the compose key, the following happens: 1. The compositor forwards the key to Xwayland. 2. Xwayland executes the SetGroup action and sets the base_group to 1 and the effective group to 1. 3. The compositor updates its own state and sends the effective group, 1, to Xwayland. 4. Xwayland sets the locked group to 1 and the effective group to 1 + 1 = 2. This is wrong since pressing compose should set the effective group to 1 but to X applications the effective group appears to be 2. This commit makes it so that Xwayland completely ignores the key behaviors and actions of the keymap and only updates the modifier and group components in response to the wayland modifiers events. Signed-off-by: Julian Orth <ju.orth@gmail.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1758> |
||
---|---|---|
.. | ||
README.compiled | ||
XKBAlloc.c | ||
XKBGAlloc.c | ||
XKBMAlloc.c | ||
XKBMisc.c | ||
XKM_file_format.txt | ||
ddxBeep.c | ||
ddxCtrls.c | ||
ddxKillSrv.c | ||
ddxLEDs.c | ||
ddxLoad.c | ||
ddxPrivate.c | ||
ddxVT.c | ||
maprules.c | ||
meson.build | ||
xkb-procs.h | ||
xkb.c | ||
xkbAccessX.c | ||
xkbActions.c | ||
xkbDflts.h | ||
xkbEvents.c | ||
xkbInit.c | ||
xkbLEDs.c | ||
xkbPrKeyEv.c | ||
xkbSwap.c | ||
xkbUtils.c | ||
xkbfmisc.c | ||
xkbgeom.h | ||
xkbout.c | ||
xkbsrv_priv.h | ||
xkbtext.c | ||
xkbtext_priv.h | ||
xkmread.c |
The X server uses this directory to store the compiled version of the current keymap and/or any scratch keymaps used by clients. The X server or some other tool might destroy or replace the files in this directory, so it is not a safe place to store compiled keymaps for long periods of time. The default keymap for any server is usually stored in: X<num>-default.xkm where <num> is the display number of the server in question, which makes it possible for several servers *on the same host* to share the same directory. Unless the X server is modified, sharing this directory between servers on different hosts could cause problems.