mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-16 06:18:53 +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)
|
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)
|
if ((uFlags & req_flags) != req_flags)
|
||||||
return TRUE;
|
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);
|
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)
|
BOOL WINAPI fake_MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint)
|
||||||
{
|
{
|
||||||
if (g_ddraw && g_ddraw->hwnd == hWnd)
|
if (g_ddraw && g_ddraw->hwnd)
|
||||||
return TRUE;
|
{
|
||||||
|
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);
|
return real_MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user