xserver/hw/xfree86
Julian Orth d038d2c080 xwayland: Don't run key behaviors and actions
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>
(cherry picked from commit 45c1d22ff6)
2026-01-25 10:39:58 -08:00
..
common xwayland: Don't run key behaviors and actions 2026-01-25 10:39:58 -08:00
ddc treewide: replace xnfcalloc() calls by XNFcallocarray() 2026-01-25 10:39:55 -08:00
dixmods Remove autotools support 2021-10-27 13:15:40 +03:00
doc treewide: replace xnfcalloc() calls by XNFcallocarray() 2026-01-25 10:39:55 -08:00
dri xfree86: dri: unexport DRIDestroyWindow() and make it static 2026-01-25 10:39:57 -08:00
dri2 Remove autotools support 2021-10-27 13:15:40 +03:00
drivers modesetting: avoid memory leak when ms_present_check_unflip() returns FALSE 2026-01-25 10:39:58 -08:00
exa treewide: replace xnfalloc() calls to XNFalloc() 2026-01-25 10:39:55 -08:00
fbdevhw xfree86: fbdevhw: fix pci detection on recent Linux 2026-01-25 10:39:57 -08:00
glamor_egl xorg: initialize glamor provider 2023-11-07 17:59:43 +03:00
i2c treewide: replace xnfreallocarray macro call by XNFreallocarray() 2026-01-25 10:39:55 -08:00
int10 treewide: replace xnfcalloc() calls by XNFcallocarray() 2026-01-25 10:39:55 -08:00
loader treewide: replace strdup() calls to Xstrdup() 2026-01-25 10:39:55 -08:00
man xorg.conf.man: Add missing new paragraph mark before AllowByteSwappedClients 2026-01-19 12:32:23 -08:00
modes treewide: replace xnfstrdup() calls by XNFstrdup() 2026-01-25 10:39:55 -08:00
os-support xfree86: os-support: move including machine/sysarch.h out of public header 2026-01-25 10:39:57 -08:00
parser xfree86: parser: scan: fix char signess mismatch 2026-01-25 10:39:57 -08:00
ramdac xfree86: use own dev-privates key for per-screen cursor 2026-01-19 12:32:21 -08:00
shadowfb Remove autotools support 2021-10-27 13:15:40 +03:00
utils Remove autotools support 2021-10-27 13:15:40 +03:00
vgahw treewide: replace xnfcalloc() calls by XNFcallocarray() 2026-01-25 10:39:55 -08:00
x86emu xfree86: x86emu: rename segment register fields 2026-01-25 10:39:53 -08:00
xkb xkb: drop defining XKBSRV_NEED_FILE_FUNCS 2026-01-19 12:32:18 -08:00
.gitignore Xorg: Add Xorg.wrap to hw/xfree86/.gitignore 2014-04-18 11:39:16 +02:00
meson.build meson: Support building Xnest and Xorg on darwin 2022-06-26 09:16:42 +00:00
sdksyms.sh include: unexport XIstubs.h 2026-01-25 10:39:56 -08:00
xorg-wrapper.c Fix various spelling errors 2019-10-01 17:05:28 +00:00
Xorg.sh.in xfree86: rename Xorg.bin to Xorg 2015-01-05 09:53:58 +10:00
xorgconf.cpp Fix spelling/wording issues 2020-07-05 13:07:33 -07:00