From: Stefan Csomor Date: Mon, 25 Jan 2010 17:12:53 +0000 (+0000) Subject: better wheel support X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/83ffdd7111106e501556b1f4aa990e410ff52b13 better wheel support git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm index 180121d928..5f7336b1f2 100644 --- a/src/osx/cocoa/window.mm +++ b/src/osx/cocoa/window.mm @@ -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 ;