From 158344348d195e65c260df28cd9cb851b303e33b Mon Sep 17 00:00:00 2001 From: Toni Spets Date: Sun, 21 Nov 2010 17:50:20 +0200 Subject: [PATCH] Pass only the minimal amount of window messages to game wndproc --- main.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/main.c b/main.c index c0a4a24..196df18 100644 --- a/main.c +++ b/main.c @@ -256,6 +256,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { + case WM_DESTROY: + return ddraw->WndProc(hWnd, uMsg, wParam, lParam); case WM_SYSCOMMAND: if(wParam == SC_CLOSE) { @@ -273,9 +275,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } break; case WM_NCACTIVATE: - /* game's drawing loop stops when it inactivates, so don't */ - DefWindowProc(hWnd, uMsg, wParam, lParam); - if(wParam == FALSE) { mouse_unlock(); @@ -292,7 +291,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ShowWindow(ddraw->hWnd, SW_RESTORE); } } - return 0; + break; case WM_KEYDOWN: if(wParam == VK_CONTROL || wParam == VK_TAB) { @@ -310,7 +309,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } } #endif - break; + return ddraw->WndProc(hWnd, uMsg, wParam, lParam); case WM_LBUTTONDOWN: case WM_RBUTTONDOWN: case WM_LBUTTONUP: @@ -321,10 +320,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) return 0; } lParam = MAKELPARAM(ddraw->cursor.x, ddraw->cursor.y); - break; + return ddraw->WndProc(hWnd, uMsg, wParam, lParam); } - return ddraw->WndProc(hWnd, uMsg, wParam, lParam); + return DefWindowProc(hWnd, uMsg, wParam, lParam); } HRESULT __stdcall ddraw_SetCooperativeLevel(IDirectDrawImpl *This, HWND hWnd, DWORD dwFlags)