weston/xwayland
Derek Foreman 6b1b3d167d xwm: Add command line option to disable window decor
Our window decor uses cairo-xcb. cairo-xcb stores xcb_connection_t
internally and uses them as kind of a hash key for internal bookkeeping.
This needs to be torn down with a cairo_device_finish, when the last
cairo surface is destroyed, and we are not properly handling that.

Because of this weston bug, if the Xwayland server dies, is restarted,
and the weston X window manager gets the same xcb_connection_t pointer
value for a new connection that it had for a previous connection,
cairo-xcb will use stale state and crash.

Weston is used in some places (like Mesa CI) where Xwayland crashes are
more common than one might usually expect, and weston needs to be robust
against these failures. It's ok to have no window frames in xwl in these
cases, because nobody is interacting with the windows.

The '--no-xwm-decorations' command line option will now remove
cairo-xcb from use entirely, so this crash can no longer happen.

We should still fix the bugs in our cairo usage, but I think long term
it's still ok to have a way to disable this and reduce complexity.

Ref #1042

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
2025-08-28 14:35:30 -05:00
..
dnd.c shared: extract hash table implementation from xwayland 2023-03-03 08:08:46 +00:00
launcher.c Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02:00
meson.build xwm: Add support for xwayland_shell_v1 2023-03-03 08:21:24 +00:00
selection.c Revert "shared/helpers.h: Migrate helpers.h to libweston" 2025-01-17 10:18:26 +02:00
window-manager.c xwm: Add command line option to disable window decor 2025-08-28 14:35:30 -05:00
xwayland-internal-interface.h libweston/desktop: Update my Copyright 2024-02-11 19:07:39 +01:00
xwayland.h xwayland: Create a dummy no_focus_window to use for non-X window focus 2025-05-23 18:07:02 +02:00