From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/winewayland.drv/wayland_surface.c | 1 + dlls/winewayland.drv/window.c | 17 +++-------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/dlls/winewayland.drv/wayland_surface.c b/dlls/winewayland.drv/wayland_surface.c index 267b45a1085..04e49d7444b 100644 --- a/dlls/winewayland.drv/wayland_surface.c +++ b/dlls/winewayland.drv/wayland_surface.c @@ -122,6 +122,7 @@ static void xdg_toplevel_handle_configure(void *private, { surface->pending.rect = map_rect_from_surface(surface, rect); surface->pending.state = config_state; + OffsetRect(&surface->pending.rect, surface->window.rect.left, surface->window.rect.top); } wayland_win_data_release(data); diff --git a/dlls/winewayland.drv/window.c b/dlls/winewayland.drv/window.c index c53211bd38a..6a341a4e8a8 100644 --- a/dlls/winewayland.drv/window.c +++ b/dlls/winewayland.drv/window.c @@ -495,7 +495,6 @@ void WAYLAND_WindowPosChanged(HWND hwnd, HWND insert_after, HWND owner_hint, UIN static void wayland_configure_window(HWND hwnd) { struct wayland_surface *surface; - INT width, height; UINT flags = 0; uint32_t state; DWORD style; @@ -529,18 +528,11 @@ static void wayland_configure_window(HWND hwnd) surface->processing = surface->requested; memset(&surface->requested, 0, sizeof(surface->requested)); + rect = surface->processing.rect; state = surface->processing.state; /* Ignore size hints if we don't have a state that requires strict * size adherence, in order to avoid spurious resizes. */ - if (state) - { - width = surface->processing.rect.right - surface->processing.rect.left; - height = surface->processing.rect.bottom - surface->processing.rect.top; - } - else - { - width = height = 0; - } + if (!state) SetRect(&rect, rect.left, rect.top, rect.left, rect.top); if ((state & WAYLAND_SURFACE_CONFIG_STATE_RESIZING) && !surface->resizing) { @@ -595,12 +587,9 @@ static void wayland_configure_window(HWND hwnd) return; } - SetRect(&rect, 0, 0, width, height); - OffsetRect(&rect, data->rects.window.left, data->rects.window.top); - wayland_win_data_release(data); - TRACE("processing=%dx%d,%#x\n", width, height, state); + TRACE("processing rect=%s state=%#x\n", wine_dbgstr_rect(&rect), state); if (needs_enter_size_move) send_message(hwnd, WM_ENTERSIZEMOVE, 0, 0); if (needs_exit_size_move) send_message(hwnd, WM_EXITSIZEMOVE, 0, 0); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11248