From: Jinoh Kang jinoh.kang.kr@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54949 --- dlls/user32/tests/msg.c | 8 +------- server/window.c | 5 +++-- 2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index a6b3f174280..e5b9b340b21 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -5793,7 +5793,7 @@ static void test_messages(void) test_WM_SETREDRAW(hchild);
ShowWindow(hchild, SW_SHOW); - ok_sequence(WmShowChildSeq, "ShowWindow(SW_SHOW):child", TRUE); + ok_sequence(WmShowChildSeq, "ShowWindow(SW_SHOW):child", FALSE);
/* check parent messages too */ log_all_parent_messages++; @@ -9467,12 +9467,10 @@ static void test_swp_paint_region_on_show(void) "GetUpdateRgn on child shall succeed\n" );
result = GetRgnBox( hrgn_actual, &rect_actual ); - todo_wine_if (result == NULLREGION) ok( result == SIMPLEREGION, "GetRgnBox (on parent) returned %d\n", result ); if (result == COMPLEXREGION) dump_region( hrgn_actual );
rect_expect = rect_1; - todo_wine_if (IsRectEmpty( &rect_actual )) ok( EqualRect( &rect_actual, &rect_expect ), "parent update region: got %s, expected %s\n", wine_dbgstr_rect( &rect_actual ), wine_dbgstr_rect( &rect_expect ) );
@@ -9506,12 +9504,10 @@ static void test_swp_paint_region_on_show(void) "GetUpdateRgn on child shall succeed\n" );
result = GetRgnBox( hrgn_actual, &rect_actual ); - todo_wine_if (result == NULLREGION) ok( result == SIMPLEREGION, "GetRgnBox (on parent) returned %d\n", result ); if (result == COMPLEXREGION) dump_region( hrgn_actual );
rect_expect = rect_2; - todo_wine_if (IsRectEmpty( &rect_actual )) ok( EqualRect( &rect_actual, &rect_expect ), "parent update region: got %s, expected %s\n", wine_dbgstr_rect( &rect_actual ), wine_dbgstr_rect( &rect_expect ) );
@@ -9565,12 +9561,10 @@ static void test_swp_paint_region_on_extend_zerosize(void) "GetUpdateRgn on child shall succeed\n" );
result = GetRgnBox( hrgn_actual, &rect_actual ); - todo_wine_if (result == NULLREGION) ok( result == SIMPLEREGION, "GetRgnBox (on parent) returned %d\n", result ); if (result == COMPLEXREGION) dump_region( hrgn_actual );
rect_expect = rect_1; - todo_wine_if (IsRectEmpty( &rect_actual )) ok( EqualRect( &rect_actual, &rect_expect ), "parent update region: got %s, expected %s\n", wine_dbgstr_rect( &rect_actual ), wine_dbgstr_rect( &rect_expect ) );
diff --git a/server/window.c b/server/window.c index f713ed224aa..01082b90b69 100644 --- a/server/window.c +++ b/server/window.c @@ -1766,8 +1766,9 @@ static struct region *expose_window( struct window *win, const rectangle_t *old_ offset_region( new_vis_rgn, win->window_rect.left - old_window_rect->left, win->window_rect.top - old_window_rect->top );
- if (is_composited ? union_region( new_vis_rgn, old_vis_rgn, new_vis_rgn ) - : subtract_region( new_vis_rgn, old_vis_rgn, new_vis_rgn )) + if (is_region_empty( old_vis_rgn ) || + (is_composited ? union_region( new_vis_rgn, old_vis_rgn, new_vis_rgn ) + : subtract_region( new_vis_rgn, old_vis_rgn, new_vis_rgn ))) { if (!is_region_empty( new_vis_rgn )) {