Alexandre Julliard : user32: Fetch client and window rectangles in a single call.
Module: wine Branch: master Commit: 3735f36dc94ca68a9344520ac28b2f7d548b0b82 URL: https://source.winehq.org/git/wine.git/?a=commit;h=3735f36dc94ca68a9344520ac... Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Jul 18 10:09:55 2018 +0200 user32: Fetch client and window rectangles in a single call. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/painting.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c index 665e1c0..66e69f4 100644 --- a/dlls/user32/painting.c +++ b/dlls/user32/painting.c @@ -652,12 +652,12 @@ static HRGN send_ncpaint( HWND hwnd, HWND *child, UINT *flags ) if (whole_rgn) { - RECT client, update; + RECT client, window, update; INT type; /* check if update rgn overlaps with nonclient area */ type = GetRgnBox( whole_rgn, &update ); - WIN_GetRectangles( hwnd, COORDS_SCREEN, 0, &client ); + WIN_GetRectangles( hwnd, COORDS_SCREEN, &window, &client ); if ((*flags & UPDATE_NONCLIENT) || update.left < client.left || update.top < client.top || @@ -667,15 +667,10 @@ static HRGN send_ncpaint( HWND hwnd, HWND *child, UINT *flags ) CombineRgn( client_rgn, client_rgn, whole_rgn, RGN_AND ); /* check if update rgn contains complete nonclient area */ - if (type == SIMPLEREGION) + if (type == SIMPLEREGION && EqualRect( &window, &update )) { - RECT window; - GetWindowRect( hwnd, &window ); - if (EqualRect( &window, &update )) - { - DeleteObject( whole_rgn ); - whole_rgn = (HRGN)1; - } + DeleteObject( whole_rgn ); + whole_rgn = (HRGN)1; } } else
participants (1)
-
Alexandre Julliard