I never really understood the point of this function (beyond just ensuring the toplevel is mapped), and it also has bugs. For example, ``` width = surface->window.rect.right - surface->window.rect.left; height = surface->window.rect.bottom - surface->window.rect.top; needs_contents = surface->window.visible && (surface->content_width != width || surface->content_height != height); ``` This condition is incorrect (see wayland_surface_attach_shm), which causes the window buttons to become transparent in some apps. In addition, is commiting a transparent buffer even a good idea if for example the app is an WGL app which is always opaque. Regardless, we can just use NtUserExposeWindowSurface in the unlikely event that there are no contents on the window. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11220