1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

Allow mouse unlocking in fullscreen (for dual head users mostly)

This commit is contained in:
Toni Spets 2010-11-08 19:23:13 +02:00
parent b2c1500c70
commit 52ec288169

65
main.c
View File

@ -149,56 +149,47 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
case WM_NCACTIVATE: case WM_NCACTIVATE:
/* game's drawing loop stops when it inactivates, so don't */ /* game's drawing loop stops when it inactivates, so don't */
if(ddraw->windowed) DefWindowProc(hWnd, uMsg, wParam, lParam);
if(wParam == FALSE)
{ {
DefWindowProc(hWnd, uMsg, wParam, lParam); mouse_unlock();
if(wParam == FALSE)
{
mouse_unlock();
}
else
{
mouse_lock();
}
SetCursor(LoadCursor((HINSTANCE)GetWindowLong(ddraw->hWnd, GWL_HINSTANCE), IDC_ARROW));
return 0;
} }
break; else
case WM_KEYDOWN:
if(ddraw->windowed)
{ {
if(wParam == VK_CONTROL) mouse_lock();
{ }
ddraw->key_ctrl = TRUE;
} return 0;
if(wParam == VK_TAB) case WM_KEYDOWN:
{ if(wParam == VK_CONTROL)
ddraw->key_tab = TRUE; {
} ddraw->key_ctrl = TRUE;
if(ddraw->key_tab && ddraw->key_ctrl) }
{ if(wParam == VK_TAB)
mouse_unlock(); {
} ddraw->key_tab = TRUE;
}
if(ddraw->key_tab && ddraw->key_ctrl)
{
mouse_unlock();
} }
break; break;
case WM_KEYUP: case WM_KEYUP:
if(ddraw->windowed) if(wParam == VK_CONTROL)
{ {
if(wParam == VK_CONTROL) ddraw->key_ctrl = FALSE;
{ }
ddraw->key_ctrl = FALSE; if(wParam == VK_TAB)
} {
if(wParam == VK_TAB) ddraw->key_tab = FALSE;
{
ddraw->key_tab = FALSE;
}
} }
break; break;
case WM_LBUTTONDOWN: case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN: case WM_RBUTTONDOWN:
case WM_LBUTTONUP: case WM_LBUTTONUP:
case WM_RBUTTONUP: case WM_RBUTTONUP:
if(!ddraw->locked && ddraw->windowed) if(!ddraw->locked)
{ {
mouse_lock(); mouse_lock();
return 0; return 0;