An X11 client using the COW (Composite Overlay Window) can break all X11 clients
If an X11 client tries to use the compositor overlay window (just by using XCompositeGetOverlayWindow()
), the overlay window will be mapped and receive all pointer events for now on, leading to all pointer input to appear frozen for all X11 clients.
Contrary to my initial belief, the issue is not limited to Xwayland and can be reproduced in any Xserver without a compositing manager.
To reproduce, save, compile and run the simple reproducer: cow.c
- Run a bare Xserver (e.g.
Xnext :12
) - Open an xterm on that server (e.g.
DISPLAY=:12 xterm
) - From that
xterm
, run the reproducer (./cow
)
No pointer event will reach any X11 window anymore, until the reproducer is stopped.
Edited by Olivier Fourdan