Module: wine Branch: master Commit: 92faf7aa96bab1e8da4534f1f4ac437d6559b4ce URL: http://source.winehq.org/git/wine.git/?a=commit;h=92faf7aa96bab1e8da4534f1f4...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Sun Dec 31 17:27:23 2006 +0800
user32: Make more ShowWindow tests pass under Wine.
---
dlls/user32/tests/msg.c | 14 +++++++------- dlls/winex11.drv/winpos.c | 3 +-- 2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 601d967..8179517 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -8547,7 +8547,7 @@ static void test_ShowWindow(void) } sw[] = { /* 1 */ { SW_SHOWNORMAL, FALSE, WS_VISIBLE, WmShowNormal, TRUE }, -/* 2 */ { SW_SHOWNORMAL, TRUE, WS_VISIBLE, WmEmptySeq, TRUE }, +/* 2 */ { SW_SHOWNORMAL, TRUE, WS_VISIBLE, WmEmptySeq, FALSE }, /* 3 */ { SW_HIDE, TRUE, 0, WmHide_1, FALSE }, /* 4 */ { SW_HIDE, FALSE, 0, WmEmptySeq, FALSE }, /* 5 */ { SW_SHOWMINIMIZED, FALSE, WS_VISIBLE|WS_MINIMIZE, WmShowMinimized_1, FALSE }, @@ -8559,7 +8559,7 @@ static void test_ShowWindow(void) /* 11 */ { SW_HIDE, TRUE, WS_MAXIMIZE, WmHide_1, FALSE }, /* 12 */ { SW_HIDE, FALSE, WS_MAXIMIZE, WmEmptySeq, FALSE }, /* 13 */ { SW_SHOWNOACTIVATE, FALSE, WS_VISIBLE, WmShowNoActivate_1, FALSE }, -/* 14 */ { SW_SHOWNOACTIVATE, TRUE, WS_VISIBLE, WmEmptySeq, TRUE }, +/* 14 */ { SW_SHOWNOACTIVATE, TRUE, WS_VISIBLE, WmEmptySeq, FALSE }, /* 15 */ { SW_HIDE, TRUE, 0, WmHide_2, FALSE }, /* 16 */ { SW_HIDE, FALSE, 0, WmEmptySeq, FALSE }, /* 17 */ { SW_SHOW, FALSE, WS_VISIBLE, WmShow, FALSE }, @@ -8576,15 +8576,15 @@ static void test_ShowWindow(void) /* 28 */ { SW_HIDE, TRUE, WS_MINIMIZE, WmHide_2, FALSE }, /* 29 */ { SW_HIDE, FALSE, WS_MINIMIZE, WmEmptySeq, FALSE }, /* 30 */ { SW_RESTORE, FALSE, WS_VISIBLE, WmRestore_1, FALSE }, -/* 31 */ { SW_RESTORE, TRUE, WS_VISIBLE, WmEmptySeq, TRUE }, +/* 31 */ { SW_RESTORE, TRUE, WS_VISIBLE, WmEmptySeq, FALSE }, /* 32 */ { SW_HIDE, TRUE, 0, WmHide_3, TRUE }, /* 33 */ { SW_HIDE, FALSE, 0, WmEmptySeq, FALSE }, /* 34 */ { SW_NORMALNA, FALSE, 0, WmEmptySeq, TRUE }, /* what does this mean?! */ /* 35 */ { SW_NORMALNA, FALSE, 0, WmEmptySeq, TRUE }, /* 36 */ { SW_HIDE, FALSE, 0, WmEmptySeq, FALSE }, -/* 37 */ { SW_RESTORE, FALSE, WS_VISIBLE, WmRestore_2, TRUE }, -/* 38 */ { SW_RESTORE, TRUE, WS_VISIBLE, WmEmptySeq, TRUE }, -/* 39 */ { SW_SHOWNOACTIVATE, TRUE, WS_VISIBLE, WmEmptySeq, TRUE }, +/* 37 */ { SW_RESTORE, FALSE, WS_VISIBLE, WmRestore_2, FALSE }, +/* 38 */ { SW_RESTORE, TRUE, WS_VISIBLE, WmEmptySeq, FALSE }, +/* 39 */ { SW_SHOWNOACTIVATE, TRUE, WS_VISIBLE, WmEmptySeq, FALSE }, /* 40 */ { SW_MINIMIZE, TRUE, WS_VISIBLE|WS_MINIMIZE, WmMinimize_2, TRUE }, /* 41 */ { SW_MINIMIZE, TRUE, WS_VISIBLE|WS_MINIMIZE, WmMinMax_3, FALSE }, /* 42 */ { SW_SHOWMAXIMIZED, TRUE, WS_VISIBLE|WS_MAXIMIZE, WmShowMaximized_2, TRUE }, @@ -8596,7 +8596,7 @@ static void test_ShowWindow(void) /* 48 */ { SW_SHOWMAXIMIZED, TRUE, WS_VISIBLE|WS_MAXIMIZE, WmShowMaximized_3, FALSE }, /* 49 */ { SW_SHOW, TRUE, WS_VISIBLE|WS_MAXIMIZE, WmEmptySeq, FALSE }, /* 50 */ { SW_SHOWNORMAL, TRUE, WS_VISIBLE, WmRestore_5, FALSE }, -/* 51 */ { SW_SHOWNORMAL, TRUE, WS_VISIBLE, WmEmptySeq, TRUE }, +/* 51 */ { SW_SHOWNORMAL, TRUE, WS_VISIBLE, WmEmptySeq, FALSE }, /* 52 */ { SW_HIDE, TRUE, 0, WmHide_1, FALSE }, /* 53 */ { SW_HIDE, FALSE, 0, WmEmptySeq, FALSE }, /* 54 */ { SW_MINIMIZE, FALSE, WS_VISIBLE|WS_MINIMIZE, WmMinimize_3, TRUE }, diff --git a/dlls/winex11.drv/winpos.c b/dlls/winex11.drv/winpos.c index 317500d..ab2080b 100644 --- a/dlls/winex11.drv/winpos.c +++ b/dlls/winex11.drv/winpos.c @@ -618,8 +618,6 @@ BOOL X11DRV_ShowWindow( HWND hwnd, INT c swp |= SWP_NOACTIVATE | SWP_NOZORDER; /* fall through */ case SW_RESTORE: - swp |= SWP_FRAMECHANGED; - if (!wasVisible) swp |= SWP_SHOWWINDOW; /* fall through */ case SW_SHOWNORMAL: /* same as SW_NORMAL: */ case SW_SHOWDEFAULT: /* FIXME: should have its own handler */ @@ -631,6 +629,7 @@ BOOL X11DRV_ShowWindow( HWND hwnd, INT c } else { + if (wasVisible) return TRUE; swp |= SWP_NOSIZE | SWP_NOMOVE; } if (style & WS_CHILD && !(swp & SWP_STATECHANGED)) swp |= SWP_NOACTIVATE | SWP_NOZORDER;