user32: Fix MapWindowPoints behavior in the process that owns the desktop window.

This commit is contained in:
Alexandre Julliard 2008-07-22 15:31:04 +02:00
parent 75d44fe46d
commit 406f5b2545
2 changed files with 12 additions and 4 deletions

View File

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

View File

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