Patch #18758 for bug #17423 by Matt D. (foom) Thanks!

"Mouse wheel zoom lost after rendering."
This commit is contained in:
Thomas Dinges 2009-05-17 15:09:03 +00:00
parent 3ea1c1b4b6
commit 65796e2c07

@ -41,7 +41,7 @@
#pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning #pragma warning (disable:4786) // get rid of stupid stl-visual compiler debug warning
#include "GHOST_SystemWin32.h" #include "GHOST_SystemWin32.h"
//#include <stdio.h> //for printf()
// win64 doesn't define GWL_USERDATA // win64 doesn't define GWL_USERDATA
#ifdef WIN32 #ifdef WIN32
#ifndef GWL_USERDATA #ifndef GWL_USERDATA
@ -747,6 +747,9 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam,
* the message is sent asynchronously, so the window is activated immediately. * the message is sent asynchronously, so the window is activated immediately.
*/ */
event = processWindowEvent(LOWORD(wParam) ? GHOST_kEventWindowActivate : GHOST_kEventWindowDeactivate, window); event = processWindowEvent(LOWORD(wParam) ? GHOST_kEventWindowActivate : GHOST_kEventWindowDeactivate, window);
/* WARNING: Let DefWindowProc handle WM_ACTIVATE, otherwise WM_MOUSEWHEEL
will not be dispatched to OUR active window if we minimize one of OUR windows. */
lResult = ::DefWindowProc(hwnd, msg, wParam, lParam);
break; break;
case WM_PAINT: case WM_PAINT:
/* An application sends the WM_PAINT message when the system or another application /* An application sends the WM_PAINT message when the system or another application
@ -766,6 +769,7 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam,
* message without calling DefWindowProc. * message without calling DefWindowProc.
*/ */
event = processWindowEvent(GHOST_kEventWindowSize, window); event = processWindowEvent(GHOST_kEventWindowSize, window);
break;
case WM_CAPTURECHANGED: case WM_CAPTURECHANGED:
window->lostMouseCapture(); window->lostMouseCapture();
break; break;
@ -904,7 +908,8 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam,
if (event) { if (event) {
system->pushEvent(event); system->pushEvent(event);
lResult = 0; if(!lResult) //WM_ACTIVATE might have returned something.
lResult = 0;
} }
else { else {
lResult = ::DefWindowProc(hwnd, msg, wParam, lParam); lResult = ::DefWindowProc(hwnd, msg, wParam, lParam);