mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
fix SetWindowPos and MoveWindow hooks
This commit is contained in:
parent
9747731136
commit
88a1dbb2f5
@ -251,18 +251,47 @@ int WINAPI fake_GetSystemMetrics(int nIndex)
|
||||
|
||||
BOOL WINAPI fake_SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags)
|
||||
{
|
||||
UINT req_flags = SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER;
|
||||
if (g_ddraw && g_ddraw->hwnd)
|
||||
{
|
||||
if (g_ddraw->hwnd == hWnd)
|
||||
{
|
||||
UINT req_flags = SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER;
|
||||
|
||||
if (g_ddraw && g_ddraw->hwnd == hWnd && (uFlags & req_flags) != req_flags)
|
||||
return TRUE;
|
||||
if ((uFlags & req_flags) != req_flags)
|
||||
return TRUE;
|
||||
}
|
||||
else if (!IsChild(g_ddraw->hwnd, hWnd))
|
||||
{
|
||||
POINT pt = { 0, 0 };
|
||||
if (real_ClientToScreen(g_ddraw->hwnd, &pt))
|
||||
{
|
||||
X += pt.x;
|
||||
Y += pt.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return real_SetWindowPos(hWnd, hWndInsertAfter, X, Y, cx, cy, uFlags);
|
||||
}
|
||||
|
||||
BOOL WINAPI fake_MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint)
|
||||
{
|
||||
if (g_ddraw && g_ddraw->hwnd == hWnd)
|
||||
return TRUE;
|
||||
if (g_ddraw && g_ddraw->hwnd)
|
||||
{
|
||||
if (g_ddraw->hwnd == hWnd)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else if (!IsChild(g_ddraw->hwnd, hWnd))
|
||||
{
|
||||
POINT pt = { 0, 0 };
|
||||
if (real_ClientToScreen(g_ddraw->hwnd, &pt))
|
||||
{
|
||||
X += pt.x;
|
||||
Y += pt.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return real_MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user