]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixed HandleMouseWheel to be __WIN32__ sensitive
authorRobin Dunn <robin@alldunn.com>
Sun, 6 May 2001 00:25:03 +0000 (00:25 +0000)
committerRobin Dunn <robin@alldunn.com>
Sun, 6 May 2001 00:25:03 +0000 (00:25 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/window.cpp

index dadffe9b6af176b29eec0ba93893a43c73e567de..628d0b76ec9c48ef34b997cf8c119604f35cb442 100644 (file)
@@ -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