Author: jimtabor Date: Mon Feb 29 00:29:52 2016 New Revision: 70813
URL: http://svn.reactos.org/svn/reactos?rev=70813&view=rev Log: [Win32SS] - Based on patch : Jacek Caban : Don't use window' s parent as an owner if WS_CHILD style is not set. - https://www.winehq.org/pipermail/wine-cvs/2016-February/111835.html - Pass all win:test_parent_owner. - Add window last view to Desktop Information structure.
Modified: trunk/reactos/win32ss/user/ntuser/window.c
Modified: trunk/reactos/win32ss/user/ntuser/window.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/window.... ============================================================================== --- trunk/reactos/win32ss/user/ntuser/window.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/window.c [iso-8859-1] Mon Feb 29 00:29:52 2016 @@ -1956,9 +1956,21 @@ goto cleanup; }
- /* FIXME: Is this correct? */ if(OwnerWindow) - OwnerWindow = UserGetAncestor(OwnerWindow, GA_ROOT); + { + if (IntIsDesktopWindow(OwnerWindow)) OwnerWindow = NULL; + else if (ParentWindow && !IntIsDesktopWindow(ParentWindow)) + { + ERR("an owned window must be created as top-level\n"); + EngSetLastError( STATUS_ACCESS_DENIED ); + goto cleanup; + } + else /* owner must be a top-level window */ + { + while ((OwnerWindow->style & (WS_POPUP|WS_CHILD)) == WS_CHILD && !IntIsDesktopWindow(OwnerWindow->spwndParent)) + OwnerWindow = OwnerWindow->spwndParent; + } + }
/* Fix the position and the size of the window */ if (ParentWindow) @@ -3467,6 +3479,7 @@ { ti->pDeskInfo->hShellWindow = hwndShell; ti->pDeskInfo->spwndShell = WndShell; + ti->pDeskInfo->spwndBkGnd = WndListView; ti->pDeskInfo->ppiShellProcess = ti->ppi; }