On Fri Sep 6 15:32:05 2024 +0000, Alexandros Frantzis wrote:
Not sure if this is intentional, but placing the ref increment here changes the ownership semantics, leading to protocol errors in games (due to a premature release of client surface). Something along the lines of `if (data->client_surface) InterlockedIncrement(&client->ref);` would restore the previous behavior, i.e., `get_client_surface()` always returns a reference which is co-owned by the caller(s) and `data->client_surface` (previously `wayland_surface->client`) is not an owning reference.
On related note: how likely is for 'wl_subcompositor_get_subsurface' to fail and would it make sense to keep the error path? It was dropped with in the second commit.