xserver/include
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
..
.gitignore Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
callback.h Avoid starting a comment with */* 2014-07-17 10:19:52 -07:00
client.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
closure.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
colormap.h dix: move internal defines into colormap.c 2026-01-25 10:39:56 -08:00
colormapst.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
cursor.h dix: fix a misused const pointer in cursor.c 2026-01-25 10:39:56 -08:00
cursorstr.h cursor: drop ARGB_CURSOR 2015-06-30 12:17:51 +10:00
displaymode.h hw/xfree86: re-calculate the clock and refresh rate 2023-12-22 05:02:05 +00:00
dix-config-apple-verbatim.h Move the apple fat binary hacks back to a header file, and make it apple-only. 2009-01-30 16:36:45 -08:00
dix.h include: dix.h: fix outdated comment 2026-01-25 10:39:54 -08:00
dixaccess.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
dixevents.h dix: Remove redundant declarations. 2012-05-14 13:31:00 +01:00
dixfont.h include: drop unused including of closure.h 2026-01-19 12:32:19 -08:00
dixfontstr.h include: dixfontstr.h: drop silent dependency on libxfont2 2026-01-25 10:39:56 -08:00
dixgrabs.h dix: CreateGrab() rename "type" parameter to "eventType" 2026-01-25 10:39:57 -08:00
dixstruct.h os: Define {ReadFdFrom,WriteFdTo}Client unconditionally 2018-03-08 14:12:36 -05:00
eventconvert.h dix: Add new internal event enums for gesture events 2021-05-30 13:26:30 +03:00
events.h xi: Implement internal gesture event struct 2021-05-30 13:26:31 +03:00
eventstr.h mi: reset the PointerWindows reference on screen switch 2023-10-25 00:37:47 +00:00
exevents.h dix: initialize the XTest sendEventsProc for all devices 2024-01-09 00:45:31 +00:00
extension.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
extinit.h Allow disabling the SHAPE extension at runtime 2023-03-03 18:28:40 +00:00
extnsionst.h dix: Remove extension aliases 2017-06-20 16:37:24 -04:00
fourcc.h glamor: xv: add rgb565 2023-11-29 21:18:29 +00:00
gc.h include: gc.h: drop unused defines 2026-01-19 12:32:26 -08:00
gcstruct.h fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
globals.h include: unpexport SELINUX_* consts from include/global.h 2026-01-19 12:32:24 -08:00
glx_extinit.h miinitext: Load GLX on the mi path 2018-02-14 17:04:48 -05:00
glxvndabi.h Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
hotplug.h config: Replace OdevAttributes linked list with struct 2014-07-17 17:10:48 -07:00
input.h test: fix various leaks in the tests 2024-01-09 09:49:54 +10:00
inputstr.h xwayland: Don't run key behaviors and actions 2026-01-25 10:39:58 -08:00
inpututils.h Implement gesture processing logic 2021-05-30 13:26:42 +03:00
list.h include: drop obsolete check for typeof operator 2026-01-25 10:39:52 -08:00
meson.build os: if inet_ntop() is available, use it for IPv4 addresses as well 2026-01-25 10:39:58 -08:00
misc.h dix: unexport Ones() 2026-01-25 10:39:57 -08:00
miscstruct.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
nonsdk_extinit.h Make PseudoramiXExtensionInit() prototype more generally available 2015-03-16 16:56:17 +00:00
opaque.h dix: unexport party_like_its_1989 (retro mode) 2026-01-19 12:32:18 -08:00
optionstr.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
os.h os.h: drop unnecessary guard on stdlib.h include 2026-01-25 10:39:57 -08:00
pixmap.h dix: Remove pScratchPixmap and other associated ABI changes 2022-12-30 01:32:25 +00:00
pixmapstr.h rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2023-01-20 17:10:54 +00:00
privates.h Fix compilation with windows.h from latest w32api 2021-08-31 16:56:28 +00:00
probes.h Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
property.h Mark the dixChangeWindowProperty() value argument as const 2021-07-30 08:36:35 +00:00
propertyst.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
protocol-versions.h Present: add PresentCapabilitySyncobj and PresentPixmapSynced 2026-01-19 12:32:24 -08:00
ptrveloc.h dix: indentation fixes for pointer acceleration 2012-05-16 10:59:35 +10:00
region.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
regionstr.h dix: make RegionInit legal C++ 2015-01-23 10:35:49 -08:00
registry.h factor out X_REGISTRY_RESOURCE and X_REGISTRY_REQUEST to meson.build 2026-01-19 12:32:18 -08:00
resource.h rename remaining RT_* defines to X11_RESTYPE_* 2026-01-19 12:48:30 -08:00
rgb.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
screenint.h dix: De-ugly the prototype for Add{GPU,}Screen 2018-10-30 12:21:41 -04:00
scrnintstr.h dix: Remove pScratchPixmap and other associated ABI changes 2022-12-30 01:32:25 +00:00
selection.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
servermd.h dix: Fix image byte order on big endian hardware 2015-05-07 14:03:50 -04:00
swaprep.h dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
swapreq.h dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
systemd-logind.h xf86/logind: Fix compilation error when built without logind/platform bus 2021-12-20 16:56:14 +01:00
validate.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
vidmodestr.h vidmode: build without xf86vidmodeproto 2016-03-01 11:25:59 -05:00
window.h dix: Add hybrid full-size/empty-clip mode to SetRootClip 2016-02-22 13:26:31 -05:00
windowstr.h dix: Remove WindowRec::backStorage 2019-04-12 21:53:03 +00:00
xkb-config.h.in Move to autoconf standard function name checks & defines 2011-12-05 14:32:45 -08:00
xkbfile.h include: xkbfile: clean up forgotten unused declarations 2026-01-25 10:39:53 -08:00
xkbrules.h xkb: add a call to init an XkbRMLVOSet from const chars 2014-02-04 10:53:59 +10:00
xkbsrv.h kbd: move _XkbWantsDetectableAutoRepeat() macro into dix/events.c 2026-01-25 10:39:54 -08:00
xkbstr.h include: xkbstr.h: fix missing include of Xdefs.h 2026-01-19 12:32:25 -08:00
xorg-config.h.meson.in xf86AutoConfig: try modesetting on all platforms we build it on 2022-09-20 18:26:03 +00:00
xorg-server.h.meson.in meson: Generate xorg-server.h 2018-03-28 09:54:22 -04:00
Xprintf.h Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
xserver-properties.h Add missing labels for multitouch valuators 2012-10-30 15:11:10 +10:00
Xserver.d Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
xwayland-config.h.meson.in xwayland/glamor: Drop the EGLStream backend 2026-01-19 12:32:21 -08:00
xwin-config.h.meson.in xwin: consolidate debugging symbols 2026-01-19 12:32:22 -08:00