[PATCH 0/1] MR6705: win32u: Do not adjust old valid rect when moving child window bits.
The child window is moved within its parent surface, the old / new visible rects have moved with the child, but the surface did not and valid rects are correctly positionned already. Fixes: 602040c58cecb778972c2ade6efabaf3b9f963ff Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57334 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6705
From: Rémi Bernon <rbernon(a)codeweavers.com> The child window is moved within its parent surface, the old / new visible rects have moved with the child, but the surface did not and valid rects are correctly positionned already. Fixes: 602040c58cecb778972c2ade6efabaf3b9f963ff Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57334 --- dlls/win32u/window.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index e3b0b3499e5..48a7304b6b0 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -2132,7 +2132,8 @@ static BOOL apply_window_pos( HWND hwnd, HWND insert_after, UINT swp_flags, stru user_driver->pMoveWindowBits( hwnd, &old_rects, new_rects, valid_rects ); else { - OffsetRect( &rects[1], new_rects->visible.left - old_rects.visible.left, new_rects->visible.top - old_rects.visible.top ); + /* move a child window bits within its parent window surface, the surface itself + * didn't move and valid rects are already relative to the surface rect. */ move_window_bits( hwnd, new_rects, valid_rects ); } } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6705
participants (1)
-
Rémi Bernon