]> git.saurik.com Git - wxWidgets.git/commitdiff
better wheel support
authorStefan Csomor <csomor@advancedconcepts.ch>
Mon, 25 Jan 2010 17:12:53 +0000 (17:12 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Mon, 25 Jan 2010 17:12:53 +0000 (17:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/osx/cocoa/window.mm

index 180121d928f1bc7fe05752f09c143a040d6ee39e..5f7336b1f2c123599606d2c512fa12daeba32c3b 100644 (file)
@@ -375,6 +375,14 @@ void wxWidgetCocoaImpl::SetupKeyEvent(wxKeyEvent &wxevent , NSEvent * nsEvent, N
 UInt32 g_lastButton = 0 ;
 bool g_lastButtonWasFakeRight = false ;
 
+// better scroll wheel support 
+// see http://lists.apple.com/archives/cocoa-dev/2007/Feb/msg00050.html
+
+@interface NSEvent (DeviceDelta)
+- (float)deviceDeltaX;
+- (float)deviceDeltaY;
+@end
+
 void wxWidgetCocoaImpl::SetupMouseEvent( wxMouseEvent &wxevent , NSEvent * nsEvent )
 {
     int eventType = [nsEvent type];
@@ -512,14 +520,14 @@ void wxWidgetCocoaImpl::SetupMouseEvent( wxMouseEvent &wxevent , NSEvent * nsEve
             wxevent.m_wheelDelta = 10;
             wxevent.m_linesPerAction = 1;
 
-            if ( fabs([nsEvent deltaX]) > fabs([nsEvent deltaY]) )
+            if ( fabs([nsEvent deviceDeltaX]) > fabs([nsEvent deviceDeltaY]) )
             {
                 wxevent.m_wheelAxis = 1;
-                wxevent.m_wheelRotation = (int)([nsEvent deltaX] * 10);
+                wxevent.m_wheelRotation = (int)[nsEvent deviceDeltaX];
             }
             else
             {
-                wxevent.m_wheelRotation = (int)([nsEvent deltaY] * 10);
+                wxevent.m_wheelRotation = (int)[nsEvent deviceDeltaY];
             }
         }
         break ;