mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
re-enable maximize button
This commit is contained in:
parent
2d1b967630
commit
e34cd3b5e2
@ -11,6 +11,7 @@
|
||||
void util_limit_game_ticks();
|
||||
void util_update_bnet_pos(int newX, int newY);
|
||||
BOOL util_get_lowest_resolution(float ratio, SIZE* outRes, DWORD minWidth, DWORD minHeight, DWORD maxWidth, DWORD maxHeight);
|
||||
void util_toggle_maximize();
|
||||
void util_toggle_fullscreen();
|
||||
BOOL util_unadjust_window_rect(LPRECT prc, DWORD dwStyle, BOOL fMenu, DWORD dwExStyle);
|
||||
void util_set_window_rect(int x, int y, int width, int height, UINT flags);
|
||||
|
2
src/dd.c
2
src/dd.c
@ -542,7 +542,7 @@ HRESULT dd_SetDisplayMode(DWORD width, DWORD height, DWORD bpp)
|
||||
}
|
||||
else
|
||||
{
|
||||
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, (GetWindowLong(g_ddraw->hwnd, GWL_STYLE) | WS_OVERLAPPEDWINDOW) & ~WS_MAXIMIZEBOX);
|
||||
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, (GetWindowLong(g_ddraw->hwnd, GWL_STYLE) | WS_OVERLAPPEDWINDOW));// &~WS_MAXIMIZEBOX);
|
||||
}
|
||||
|
||||
if (g_ddraw->wine)
|
||||
|
34
src/utils.c
34
src/utils.c
@ -185,6 +185,40 @@ BOOL util_get_lowest_resolution(float ratio, SIZE *out_res, DWORD min_width, DWO
|
||||
return result;
|
||||
}
|
||||
|
||||
void util_toggle_maximize()
|
||||
{
|
||||
RECT work_rc;
|
||||
RECT client_rc;
|
||||
|
||||
if (real_GetClientRect(g_ddraw->hwnd, &client_rc) &&
|
||||
SystemParametersInfo(SPI_GETWORKAREA, 0, &work_rc, 0))
|
||||
{
|
||||
if (client_rc.right != g_ddraw->width || client_rc.bottom != g_ddraw->height)
|
||||
{
|
||||
util_set_window_rect(
|
||||
(work_rc.right / 2) - (g_ddraw->width / 2),
|
||||
(work_rc.bottom / 2) - (g_ddraw->height / 2),
|
||||
g_ddraw->width,
|
||||
g_ddraw->height,
|
||||
0);
|
||||
}
|
||||
else if (
|
||||
util_unadjust_window_rect(
|
||||
&work_rc,
|
||||
GetWindowLong(g_ddraw->hwnd, GWL_STYLE),
|
||||
FALSE,
|
||||
GetWindowLong(g_ddraw->hwnd, GWL_EXSTYLE)))
|
||||
{
|
||||
util_set_window_rect(
|
||||
work_rc.left,
|
||||
work_rc.top,
|
||||
work_rc.right - work_rc.left,
|
||||
work_rc.bottom - work_rc.top,
|
||||
0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void util_toggle_fullscreen()
|
||||
{
|
||||
if (g_ddraw->bnet_active)
|
||||
|
@ -377,8 +377,18 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
return DefWindowProc(hWnd, uMsg, wParam, lParam); /* Carmageddon fix */
|
||||
}
|
||||
|
||||
/* C&C and RA really don't want to close down */
|
||||
case WM_SYSCOMMAND:
|
||||
|
||||
if (wParam == SC_MAXIMIZE)
|
||||
{
|
||||
if (g_ddraw->resizable)
|
||||
{
|
||||
util_toggle_maximize();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (wParam == SC_CLOSE && !GameHandlesClose)
|
||||
{
|
||||
exit(0);
|
||||
@ -487,36 +497,7 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
||||
{
|
||||
if (g_ddraw->resizable)
|
||||
{
|
||||
RECT work_rc;
|
||||
RECT client_rc;
|
||||
|
||||
if (real_GetClientRect(g_ddraw->hwnd, &client_rc) &&
|
||||
SystemParametersInfo(SPI_GETWORKAREA, 0, &work_rc, 0))
|
||||
{
|
||||
if (client_rc.right != g_ddraw->width || client_rc.bottom != g_ddraw->height)
|
||||
{
|
||||
util_set_window_rect(
|
||||
(work_rc.right / 2) - (g_ddraw->width / 2),
|
||||
(work_rc.bottom / 2) - (g_ddraw->height / 2),
|
||||
g_ddraw->width,
|
||||
g_ddraw->height,
|
||||
0);
|
||||
}
|
||||
else if (
|
||||
util_unadjust_window_rect(
|
||||
&work_rc,
|
||||
GetWindowLong(g_ddraw->hwnd, GWL_STYLE),
|
||||
FALSE,
|
||||
GetWindowLong(g_ddraw->hwnd, GWL_EXSTYLE)))
|
||||
{
|
||||
util_set_window_rect(
|
||||
work_rc.left,
|
||||
work_rc.top,
|
||||
work_rc.right - work_rc.left,
|
||||
work_rc.bottom - work_rc.top,
|
||||
0);
|
||||
}
|
||||
}
|
||||
util_toggle_maximize();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user