From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/winewayland.drv/window.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index c31374cc564..cfda0c484d2 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -254,18 +254,13 @@ static BOOL wayland_win_data_update_wayland_surface(struct wayland_win_data *dat return TRUE; } -static void wayland_win_data_update_wayland_state(struct wayland_win_data *data) +static void wayland_surface_update_state_toplevel(struct wayland_surface *surface) { - struct wayland_surface *surface = data->wayland_surface; - BOOL processing_config; - - if (!surface->xdg_toplevel) goto out; - - processing_config = surface->processing.serial && - !surface->processing.processed; + BOOL processing_config = surface->processing.serial && + !surface->processing.processed; TRACE("hwnd=%p window_state=%#x %s->state=%#x\n", - data->hwnd, surface->window.state, + surface->hwnd, surface->window.state, processing_config ? "processing" : "current", processing_config ? surface->processing.state : surface->current.state); @@ -301,8 +296,21 @@ static void wayland_win_data_update_wayland_state(struct wayland_win_data *data) { surface->processing.processed = TRUE; } +} + +static void wayland_win_data_update_wayland_state(struct wayland_win_data *data) +{ + struct wayland_surface *surface = data->wayland_surface; + + switch (surface->role) + { + case WAYLAND_SURFACE_ROLE_NONE: + break; + case WAYLAND_SURFACE_ROLE_TOPLEVEL: + wayland_surface_update_state_toplevel(surface); + break; + } -out: wl_display_flush(process_wayland.wl_display); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6560