mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
fix AOE2 textbox position
This commit is contained in:
parent
cd3bef1cea
commit
c850b0dcc3
7
inc/dd.h
7
inc/dd.h
@ -158,6 +158,13 @@ typedef struct CNCDDRAW
|
|||||||
DWORD gui_thread_id;
|
DWORD gui_thread_id;
|
||||||
BOOL show_driver_warning;
|
BOOL show_driver_warning;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
HWND hwnd;
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
} textbox; /* Age Of Empires 2 textbox align */
|
||||||
|
|
||||||
} CNCDDRAW;
|
} CNCDDRAW;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
23
src/dd.c
23
src/dd.c
@ -1149,6 +1149,29 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||||||
mouse_lock();
|
mouse_lock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_ddraw.textbox.hwnd &&
|
||||||
|
g_ddraw.textbox.x &&
|
||||||
|
g_ddraw.textbox.y &&
|
||||||
|
IsWindow(g_ddraw.textbox.hwnd) &&
|
||||||
|
GetParent(g_ddraw.textbox.hwnd) == g_ddraw.hwnd)
|
||||||
|
{
|
||||||
|
char class_name[MAX_PATH] = { 0 };
|
||||||
|
GetClassNameA(g_ddraw.textbox.hwnd, class_name, sizeof(class_name) - 1);
|
||||||
|
|
||||||
|
if (_strcmpi(class_name, "Edit") == 0)
|
||||||
|
{
|
||||||
|
real_SetWindowPos(
|
||||||
|
g_ddraw.textbox.hwnd,
|
||||||
|
0,
|
||||||
|
g_ddraw.textbox.x * g_ddraw.render.scale_w,
|
||||||
|
g_ddraw.textbox.y * g_ddraw.render.scale_h,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
RedrawWindow(g_ddraw.hwnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE);
|
RedrawWindow(g_ddraw.hwnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE);
|
||||||
|
|
||||||
if (g_ddraw.render.viewport.x != 0 || g_ddraw.render.viewport.y != 0)
|
if (g_ddraw.render.viewport.x != 0 || g_ddraw.render.viewport.y != 0)
|
||||||
|
@ -810,7 +810,7 @@ BOOL CALLBACK util_enum_child_proc(HWND hwnd, LPARAM lparam)
|
|||||||
dbg_dump_wnd_styles(style, exstyle);
|
dbg_dump_wnd_styles(style, exstyle);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (parent != g_ddraw.hwnd || size.right <= 1 || size.bottom <= 1 || strcmp(class_name, "Edit") == 0)
|
if (parent != g_ddraw.hwnd || size.right <= 1 || size.bottom <= 1 || _strcmpi(class_name, "Edit") == 0)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
if (g_config.fixchilds == FIX_CHILDS_DETECT_HIDE ||
|
if (g_config.fixchilds == FIX_CHILDS_DETECT_HIDE ||
|
||||||
|
@ -371,6 +371,20 @@ BOOL WINAPI fake_MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BO
|
|||||||
Y += pt.y;
|
Y += pt.y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (hWnd == g_ddraw.textbox.hwnd && IsWindow(hWnd) && GetParent(hWnd) == g_ddraw.hwnd && g_ddraw.width)
|
||||||
|
{
|
||||||
|
char class_name[MAX_PATH] = { 0 };
|
||||||
|
GetClassNameA(hWnd, class_name, sizeof(class_name) - 1);
|
||||||
|
|
||||||
|
if (_strcmpi(class_name, "Edit") == 0)
|
||||||
|
{
|
||||||
|
g_ddraw.textbox.x = X;
|
||||||
|
g_ddraw.textbox.y = Y;
|
||||||
|
|
||||||
|
X *= g_ddraw.render.scale_w;
|
||||||
|
Y *= g_ddraw.render.scale_h;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return real_MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint);
|
return real_MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint);
|
||||||
@ -1692,6 +1706,17 @@ HWND WINAPI fake_CreateWindowExA(
|
|||||||
hInstance,
|
hInstance,
|
||||||
lpParam);
|
lpParam);
|
||||||
|
|
||||||
|
/* Age Of Empires 2 */
|
||||||
|
if (!dwExStyle &&
|
||||||
|
HIWORD(lpClassName) && _strcmpi(lpClassName, "edit") == 0 &&
|
||||||
|
!lpWindowName &&
|
||||||
|
g_ddraw.ref && g_ddraw.width &&
|
||||||
|
g_ddraw.hwnd && hWndParent == g_ddraw.hwnd &&
|
||||||
|
hMenu == 1)
|
||||||
|
{
|
||||||
|
g_ddraw.textbox.hwnd = hwnd;
|
||||||
|
}
|
||||||
|
|
||||||
TRACE("<- CreateWindowExA(hwnd=%p)\n", hwnd);
|
TRACE("<- CreateWindowExA(hwnd=%p)\n", hwnd);
|
||||||
|
|
||||||
return hwnd;
|
return hwnd;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user