fix WM_DISPLAYCHANGE branching

This commit is contained in:
Christian Semmler 2023-06-26 21:50:52 +02:00
parent e1044a2f95
commit 1cfb66527e
No known key found for this signature in database
GPG Key ID: 086DAA1360BEEE5C

View File

@ -144,7 +144,7 @@ LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
NotificationId type; NotificationId type;
unsigned char keyCode = 0; unsigned char keyCode = 0;
MINMAXINFO *mmi = (MINMAXINFO *) lParam; MINMAXINFO *mmi = (MINMAXINFO*) lParam;
if (!g_isle) { if (!g_isle) {
return DefWindowProcA(hWnd, uMsg, wParam, lParam); return DefWindowProcA(hWnd, uMsg, wParam, lParam);
@ -176,14 +176,11 @@ LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
} }
return DefWindowProcA(hWnd,uMsg,wParam,lParam); return DefWindowProcA(hWnd,uMsg,wParam,lParam);
case WM_GETMINMAXINFO: case WM_GETMINMAXINFO:
{
mmi->ptMaxTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1; mmi->ptMaxTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1;
mmi->ptMaxTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1; mmi->ptMaxTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1;
mmi->ptMinTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1; mmi->ptMinTrackSize.x = (g_windowRect.right - g_windowRect.left) + 1;
mmi->ptMinTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1; mmi->ptMinTrackSize.y = (g_windowRect.bottom - g_windowRect.top) + 1;
return 0; return 0;
}
case WM_ENTERMENULOOP: case WM_ENTERMENULOOP:
return DefWindowProcA(hWnd,uMsg,wParam,lParam); return DefWindowProcA(hWnd,uMsg,wParam,lParam);
case WM_SYSCOMMAND: case WM_SYSCOMMAND:
@ -217,24 +214,30 @@ LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return DefWindowProcA(hWnd, uMsg, wParam, lParam); return DefWindowProcA(hWnd, uMsg, wParam, lParam);
case WM_DISPLAYCHANGE: case WM_DISPLAYCHANGE:
if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->m_unk74 && VideoManager()->m_unk74[0x220]) { if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->m_unk74 && VideoManager()->m_unk74[0x220]) {
if (!g_waitingForTargetDepth) { int targetWidth = LOWORD(lParam);
unsigned char valid = FALSE; int targetHeight = HIWORD(lParam);
if (LOWORD(lParam) == g_targetWidth && HIWORD(lParam) == g_targetHeight && g_targetDepth == wParam) {
valid = TRUE; if (g_waitingForTargetDepth) {
}
if (!g_rmDisabled) {
if (!valid) {
g_rmDisabled = 1;
Lego()->vtable38();
VideoManager()->DisableRMDevice();
}
} else if (valid) {
g_reqEnableRMDevice = 1;
}
} else {
g_waitingForTargetDepth = 0; g_waitingForTargetDepth = 0;
g_targetDepth = wParam; g_targetDepth = wParam;
} }
else {
unsigned char valid = FALSE;
if (targetWidth == g_targetWidth && targetHeight == g_targetHeight && g_targetDepth == wParam) {
valid = TRUE;
}
if (g_rmDisabled) {
if (valid) {
g_reqEnableRMDevice = 1;
}
}
else if (!valid) {
g_rmDisabled = 1;
Lego()->vtable38();
VideoManager()->DisableRMDevice();
}
}
} }
return DefWindowProcA(hWnd, uMsg, wParam, lParam); return DefWindowProcA(hWnd, uMsg, wParam, lParam);
case WM_SETCURSOR: case WM_SETCURSOR: