From: Dmitry Timoshkov dmitry@baikal.ru
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=37706 Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/user32/tests/msg.c | 4 +--- dlls/win32u/dce.c | 7 +++++-- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 5fa733be047..19d08196c1a 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -12992,15 +12992,13 @@ static void test_scrollwindowex(void)
ret = ScrollWindowEx(hwnd, 10, 10, &rect, NULL, NULL, NULL, SW_SCROLLCHILDREN|SW_ERASE|SW_INVALIDATE); - todo_wine ok(ret == NULLREGION, "got %d\n", ret); - ok_sequence(WmEmptySeq, "ScrollWindowEx", FALSE); + ok_sequence(WmEmptySeq, "ScrollWindowEx", TRUE); flush_events(); flush_sequence();
ret = ScrollWindowEx(hwnd, 10, 10, NULL, NULL, NULL, NULL, SW_SCROLLCHILDREN|SW_ERASE|SW_INVALIDATE); - todo_wine ok(ret == NULLREGION, "got %d\n", ret); ok_sequence(ScrollWindowExSeq, "ScrollWindowEx", TRUE); flush_events(); diff --git a/dlls/win32u/dce.c b/dlls/win32u/dce.c index 68de024c8b3..a26f5824738 100644 --- a/dlls/win32u/dce.c +++ b/dlls/win32u/dce.c @@ -2080,10 +2080,13 @@ INT WINAPI NtUserScrollWindowEx( HWND hwnd, INT dx, INT dy, const RECT *rect, rdw_flags = (flags & SW_ERASE) && (flags & SW_INVALIDATE) ? RDW_INVALIDATE | RDW_ERASE : RDW_INVALIDATE;
- if (!is_window_drawable( hwnd, TRUE )) return ERROR; hwnd = get_full_window_handle( hwnd );
- get_client_rect( hwnd, &rc, get_thread_dpi() ); + if (!is_window_drawable( hwnd, TRUE )) + SetRectEmpty( &rc ); + else + get_client_rect( hwnd, &rc, get_thread_dpi() ); + if (clip_rect) intersect_rect( &cliprc, &rc, clip_rect ); else cliprc = rc;