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;
}