From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winewayland.drv/waylanddrv.h | 1 + dlls/winewayland.drv/window.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/winewayland.drv/waylanddrv.h b/dlls/winewayland.drv/waylanddrv.h index 8946c4aafbb..3dee8e432df 100644 --- a/dlls/winewayland.drv/waylanddrv.h +++ b/dlls/winewayland.drv/waylanddrv.h @@ -286,6 +286,7 @@ struct wayland_win_data struct wayland_client_surface *client_surface; /* window rects, relative to parent client area */ struct window_rects rects; + BOOL is_fullscreen; BOOL managed; };
diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index d1be6b28d4c..66e34d4f5bc 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -167,7 +167,7 @@ static void wayland_win_data_get_config(struct wayland_win_data *data, TRACE("window=%s style=%#lx\n", wine_dbgstr_rect(&conf->rect), (long)style);
/* The fullscreen state is implied by the window position and style. */ - if (NtUserIsWindowRectFullScreen(&conf->rect, get_win_monitor_dpi(data->hwnd))) + if (data->is_fullscreen) { if ((style & WS_MAXIMIZE) && (style & WS_CAPTION) == WS_CAPTION) window_state |= WAYLAND_SURFACE_CONFIG_STATE_MAXIMIZED; @@ -451,6 +451,7 @@ void WAYLAND_WindowPosChanged(HWND hwnd, HWND insert_after, UINT swp_flags, BOOL if (!(data = wayland_win_data_get(hwnd))) return;
data->rects = *new_rects; + data->is_fullscreen = fullscreen; data->managed = managed;
wayland_win_data_update_wayland_surface(data);