Based on the commit reference, wl_buffer is attached as NULL to the wl_surface. wl_buffer NULL is not the correct way to use wayland.
Make it possible to hide windows
Reviewed-by: Andy Nichols <email@example.com>
QtWayland::wl_surface::attach(0, 0, 0); is used to hide the surface. NULL surface is not valid as per wayland,
Even though the document says
>>If wl_surface.attach is sent with a NULL wl_buffer, the following wl_surface.commit will remove the surface content.
But causes unexpected behaviour that depends on compositor. xdg_surface will throw error and weston will get stuck.
For more information