user32: Fix coordinates mapping for the desktop window in the explorer process.
This commit is contained in:
parent
654bb4a231
commit
ee44c7c0f4
|
@ -740,8 +740,11 @@ BOOL WIN_GetRectangles( HWND hwnd, enum coords_relative relative, RECT *rectWind
|
||||||
goto other_process;
|
goto other_process;
|
||||||
}
|
}
|
||||||
win = parent;
|
win = parent;
|
||||||
OffsetRect( &window_rect, win->rectClient.left, win->rectClient.top );
|
if (win->parent)
|
||||||
OffsetRect( &client_rect, win->rectClient.left, win->rectClient.top );
|
{
|
||||||
|
OffsetRect( &window_rect, win->rectClient.left, win->rectClient.top );
|
||||||
|
OffsetRect( &client_rect, win->rectClient.left, win->rectClient.top );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -445,7 +445,7 @@ static POINT WINPOS_GetWinOffset( HWND hwndFrom, HWND hwndTo, BOOL *mirrored )
|
||||||
mirror_from = TRUE;
|
mirror_from = TRUE;
|
||||||
offset.x += wndPtr->rectClient.right - wndPtr->rectClient.left;
|
offset.x += wndPtr->rectClient.right - wndPtr->rectClient.left;
|
||||||
}
|
}
|
||||||
for (;;)
|
while (wndPtr->parent)
|
||||||
{
|
{
|
||||||
offset.x += wndPtr->rectClient.left;
|
offset.x += wndPtr->rectClient.left;
|
||||||
offset.y += wndPtr->rectClient.top;
|
offset.y += wndPtr->rectClient.top;
|
||||||
|
@ -460,6 +460,7 @@ static POINT WINPOS_GetWinOffset( HWND hwndFrom, HWND hwndTo, BOOL *mirrored )
|
||||||
goto other_process;
|
goto other_process;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (wndPtr && wndPtr != WND_DESKTOP) WIN_ReleasePtr( wndPtr );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,7 +476,7 @@ static POINT WINPOS_GetWinOffset( HWND hwndFrom, HWND hwndTo, BOOL *mirrored )
|
||||||
mirror_to = TRUE;
|
mirror_to = TRUE;
|
||||||
offset.x -= wndPtr->rectClient.right - wndPtr->rectClient.left;
|
offset.x -= wndPtr->rectClient.right - wndPtr->rectClient.left;
|
||||||
}
|
}
|
||||||
for (;;)
|
while (wndPtr->parent)
|
||||||
{
|
{
|
||||||
offset.x -= wndPtr->rectClient.left;
|
offset.x -= wndPtr->rectClient.left;
|
||||||
offset.y -= wndPtr->rectClient.top;
|
offset.y -= wndPtr->rectClient.top;
|
||||||
|
@ -490,6 +491,7 @@ static POINT WINPOS_GetWinOffset( HWND hwndFrom, HWND hwndTo, BOOL *mirrored )
|
||||||
goto other_process;
|
goto other_process;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (wndPtr && wndPtr != WND_DESKTOP) WIN_ReleasePtr( wndPtr );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue