From: Dmitry Timoshkov dmitry@baikal.ru
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/user32/tests/dce.c | 2 +- dlls/win32u/dce.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/tests/dce.c b/dlls/user32/tests/dce.c index 64becb6084d..c7e498c60d0 100644 --- a/dlls/user32/tests/dce.c +++ b/dlls/user32/tests/dce.c @@ -521,7 +521,7 @@ static void test_begin_paint(void) ok( rect.bottom == parent_rect.bottom, "rect.bottom = %ld, expected %ld\n", rect.bottom, parent_rect.bottom );
hdc = GetDC( hwnd_parent ); - todo_wine ok( GetPixel( hdc, 60, 60 ) == cr, "error drawing outside of window client area\n" ); + ok( GetPixel( hdc, 60, 60 ) == cr, "error drawing outside of window client area\n" ); ReleaseDC( hwnd_parent, hdc ); }
diff --git a/dlls/win32u/dce.c b/dlls/win32u/dce.c index 5fff59570f7..78849906dc9 100644 --- a/dlls/win32u/dce.c +++ b/dlls/win32u/dce.c @@ -494,8 +494,16 @@ static void update_visible_region( struct dce *dce ) top_win = wine_server_ptr_handle( reply->top_win ); win_rect.left = reply->win_rect.left; win_rect.top = reply->win_rect.top; - win_rect.right = reply->win_rect.right; - win_rect.bottom = reply->win_rect.bottom; + if (flags & DCX_PARENTCLIP) + { + win_rect.right = reply->top_rect.right; + win_rect.bottom = reply->top_rect.bottom; + } + else + { + win_rect.right = reply->win_rect.right; + win_rect.bottom = reply->win_rect.bottom; + } top_rect.left = reply->top_rect.left; top_rect.top = reply->top_rect.top; top_rect.right = reply->top_rect.right;