user32: Fix MapWindowPoints behavior in the process that owns the desktop window.
This commit is contained in:
parent
75d44fe46d
commit
406f5b2545
|
@ -623,6 +623,8 @@ static HRGN send_ncpaint( HWND hwnd, HWND *child, UINT *flags )
|
|||
|
||||
if (child) hwnd = *child;
|
||||
|
||||
if (hwnd == GetDesktopWindow()) return whole_rgn;
|
||||
|
||||
if (whole_rgn)
|
||||
{
|
||||
RECT client, update;
|
||||
|
|
|
@ -434,8 +434,11 @@ static void WINPOS_GetWinOffset( HWND hwndFrom, HWND hwndTo, POINT *offset )
|
|||
}
|
||||
if (wndPtr == WND_DESKTOP) break;
|
||||
if (wndPtr == WND_OTHER_PROCESS) goto other_process;
|
||||
offset->x += wndPtr->rectClient.left;
|
||||
offset->y += wndPtr->rectClient.top;
|
||||
if (wndPtr->parent)
|
||||
{
|
||||
offset->x += wndPtr->rectClient.left;
|
||||
offset->y += wndPtr->rectClient.top;
|
||||
}
|
||||
hwnd = wndPtr->parent;
|
||||
WIN_ReleasePtr( wndPtr );
|
||||
}
|
||||
|
@ -455,8 +458,11 @@ static void WINPOS_GetWinOffset( HWND hwndFrom, HWND hwndTo, POINT *offset )
|
|||
}
|
||||
if (wndPtr == WND_DESKTOP) break;
|
||||
if (wndPtr == WND_OTHER_PROCESS) goto other_process;
|
||||
offset->x -= wndPtr->rectClient.left;
|
||||
offset->y -= wndPtr->rectClient.top;
|
||||
if (wndPtr->parent)
|
||||
{
|
||||
offset->x -= wndPtr->rectClient.left;
|
||||
offset->y -= wndPtr->rectClient.top;
|
||||
}
|
||||
hwnd = wndPtr->parent;
|
||||
WIN_ReleasePtr( wndPtr );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue