Skip to content

platforms/wayland: Delay setup until first configure

Manuel Stoeckl requested to merge mstoeckl/kwin:wlbackend-fix-configure into master

This fixes a race condition where running kwin_wayland nested under sway would produce an xdg_surface@15: error 3: xdg_surface has never been configured error message almost every time. Quoting https://wayland.app/protocols/xdg-shell#xdg_surface :

Creating an xdg_surface from a wl_surface which has a buffer attached or committed is a client error, and any attempts by a client to attach or manipulate a buffer prior to the first xdg_surface.configure call must also be treated as errors.

Running kwin_wayland under itself and under GNOME Shell already worked, because they incorrectly fail to report the error; and under Weston was broken due to some cursor-related crash. This MR does not change the behavior under those compositors.

See commit message for how this works. I'm not certain that it is the best way to solve the 'attach-buffer-before-configure' problem, but it is easier than figuring out exactly how EglWaylandBackend does its setup.

Merge request reports