Hi @mahkoh, concerning the server-side decorations part, I don't think changing the win32 window state (i.e., disabling WM_CAPTION) is the way to go, since it may have other undesirable side effects.
The way I understand recent Wine versions deal with server side decorations is by utilizing the `visible` RECT in `struct window_rects` passed in the `WindowPosChanged` driver callback. This describes the area of the window that should actually be visible on the screen. If the `window` RECT doesn't match the `visible` RECT then that's an indication that the driver should handle the decoration (e.g., https://gitlab.winehq.org/wine/wine/-/blob/ccb99cd00f55b716e3aa1a80ff4b13a6d...)
Note that in order for win32u to actually enable this mechanism a few things should be in place (https://gitlab.winehq.org/wine/wine/-/blob/ccb99cd00f55b716e3aa1a80ff4b13a6d...): 1. The "Decorated" option should be enabled (e.g., through winecfg "Allow the window manager to the decorate the windows") 2. The driver should implement the `GetWindowStyleMasks` callback.
Here is a rough list of what's missing to have server side decorations: 1. Implement `GetWindowStyleMasks` so that we get a proper `visible` RECT when the "Decorated" option is enabled. 2. Ensure we properly display only the `visible` part of surface buffers, input coordinates are translated properly etc 3. Enable the server-side decoration protocol.