From 0f7a546d9cb38a62a5d626b38e67bcc94f12a0fb Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sun, 6 May 2001 00:25:03 +0000 Subject: [PATCH] Fixed HandleMouseWheel to be __WIN32__ sensitive git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/window.cpp | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/msw/window.cpp b/src/msw/window.cpp index dadffe9b6a..628d0b76ec 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -3371,16 +3371,31 @@ bool wxWindow::HandleMouseWheel(WXWPARAM wParam, WXLPARAM lParam) GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), LOWORD(wParam)); - event.m_wheelRotation = (short)HIWORD(wParam); event.m_wheelDelta = WHEEL_DELTA; - int linesPer; - if (!SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &linesPer, 0)) - linesPer = 1; - event.m_linesPerAction = linesPer; +#ifdef __WIN32__ + static int s_linesPerRotation = -1; + if ( s_linesPerRotation == -1 ) + { + if ( !::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, + &s_linesPerRotation, 0)) + { + // this is not supposed to happen + wxLogLastError(_T("SystemParametersInfo(GETWHEELSCROLLLINES)")); + + // the default is 3, so use it if SystemParametersInfo() failed + s_linesPerRotation = 3; + } + } +#else // Win16 + // no SystemParametersInfo() under Win16 + static const int s_linesPerRotation = 3; +#endif + event.m_linesPerAction = s_linesPerRotation; return GetEventHandler()->ProcessEvent(event); + #else return FALSE; #endif -- 2.47.2