Skip to content

wayland: Initalize xdg_surface before creating kde-decoration-manager

This caused a crash in hikari, as it assumed the wl_surface of an kde-decoration-manager is already a desktop shell surface, as written in the spec. So this fixes a minor protocol violation, as we now do create the xdg_surface and toplevel before creating the decoration manager.

so from this

[ 441022.623]  -> org_kde_kwin_server_decoration_manager@13.create(new id org_kde_kwin_server_decoration@26, wl_surface@7)
[ 441022.638]  -> org_kde_kwin_server_decoration@26.request_mode(1)
[ 441029.620]  -> xdg_wm_base@22.get_xdg_surface(new id xdg_surface@27, wl_surface@7)
[ 441029.632]  -> xdg_surface@27.get_toplevel(new id xdg_toplevel@28)

to this

[1343585.817] wl_callback@26.done(0)
[1343585.819]  -> zwp_linux_dmabuf_feedback_v1@24.destroy()
[1343665.345]  -> xdg_wm_base@22.get_xdg_surface(new id xdg_surface@26, wl_surface@7)
[1343665.366]  -> xdg_surface@26.get_toplevel(new id xdg_toplevel@27)
[1343665.370]  -> xdg_toplevel@27.set_parent(nil)
[1343665.372]  -> xdg_toplevel@27.set_title("Tuba")
[1343665.374]  -> xdg_toplevel@27.set_maximized()
[1343665.376]  -> xdg_toplevel@27.set_app_id("dev.geopjr.Tuba")
[1343665.379]  -> wl_surface@7.commit()
[1343665.744]  -> xdg_toplevel@27.set_maximized()
[1343665.748]  -> xdg_toplevel@27.unset_fullscreen()
[1343665.751]  -> org_kde_kwin_server_decoration_manager@13.create(new id org_kde_kwin_server_decoration@28, wl_surface@7)
[1343665.755]  -> org_kde_kwin_server_decoration@28.request_mode(1)

Merge request reports