mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
[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. svn path=/trunk/; revision=70813
This commit is contained in:
parent
6a531b1d1a
commit
96ab54cc90
1 changed files with 15 additions and 2 deletions
|
@ -1956,9 +1956,21 @@ co_UserCreateWindowEx(CREATESTRUCTW* Cs,
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: Is this correct? */
|
|
||||||
if(OwnerWindow)
|
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 */
|
/* Fix the position and the size of the window */
|
||||||
if (ParentWindow)
|
if (ParentWindow)
|
||||||
|
@ -3467,6 +3479,7 @@ NtUserSetShellWindowEx(HWND hwndShell, HWND hwndListView)
|
||||||
{
|
{
|
||||||
ti->pDeskInfo->hShellWindow = hwndShell;
|
ti->pDeskInfo->hShellWindow = hwndShell;
|
||||||
ti->pDeskInfo->spwndShell = WndShell;
|
ti->pDeskInfo->spwndShell = WndShell;
|
||||||
|
ti->pDeskInfo->spwndBkGnd = WndListView;
|
||||||
ti->pDeskInfo->ppiShellProcess = ti->ppi;
|
ti->pDeskInfo->ppiShellProcess = ti->ppi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue