Sergey Guralnik : user32: Bring reference MDI child to bottom when switching to next.

Alexandre Julliard julliard at winehq.org
Thu Jun 6 13:46:00 CDT 2013


Module: wine
Branch: master
Commit: e90418d31cc6fd299fed2afa972cc82433cf33db
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e90418d31cc6fd299fed2afa972cc82433cf33db

Author: Sergey Guralnik <serhio at etersoft.ru>
Date:   Thu Jun  6 08:17:15 2013 +0300

user32: Bring reference MDI child to bottom when switching to next.

---

 dlls/user32/mdi.c       |    5 ++++-
 dlls/user32/tests/win.c |    2 --
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c
index c92eeb1..7b50fae 100644
--- a/dlls/user32/mdi.c
+++ b/dlls/user32/mdi.c
@@ -1156,8 +1156,11 @@ LRESULT MDIClientWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM
 
       case WM_MDINEXT: /* lParam != 0 means previous window */
       {
-        HWND next = MDI_GetWindow( ci, WIN_GetFullHandle( (HWND)wParam ), !lParam, 0 );
+        HWND hwnd = wParam ? WIN_GetFullHandle((HWND)wParam) : ci->hwndActiveChild;
+        HWND next = MDI_GetWindow( ci, hwnd, !lParam, 0 );
         MDI_SwitchActiveChild( ci, next, TRUE );
+        if(!lParam)
+            SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
 	break;
       }
 
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index a9467ce..2d9faaa 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -1545,7 +1545,6 @@ static void test_MDI_child_stack(HWND mdi_client)
     stack[1] = GetWindow(stack[0], GW_HWNDNEXT);
     stack[2] = GetWindow(stack[1], GW_HWNDNEXT);
     stack[3] = GetWindow(stack[2], GW_HWNDNEXT);
-todo_wine
     ok(stack[0] == child_2 && stack[1] == child_4 &&
         stack[2] == child_1 && stack[3] == child_3,
         "Broken MDI child stack:\nexpected: %p->%p->%p->%p, but got: %p->%p->%p->%p\n",
@@ -1558,7 +1557,6 @@ todo_wine
     stack[1] = GetWindow(stack[0], GW_HWNDNEXT);
     stack[2] = GetWindow(stack[1], GW_HWNDNEXT);
     stack[3] = GetWindow(stack[2], GW_HWNDNEXT);
-todo_wine
     ok(stack[0] == child_4 && stack[1] == child_2 &&
         stack[2] == child_1 && stack[3] == child_3,
         "Broken MDI child stack:\nexpected: %p->%p->%p->%p, but got: %p->%p->%p->%p\n",




More information about the wine-cvs mailing list