The NSEvent class method scrollingDeltaY is available for Mac OS 10.7 and newer. Since QEMU supports Mac OS 10.5 and up, we need to be using a method that is available on these version of Mac OS X. The deltaY method is a method that does the same thing as scrollingDeltaY and is available on Mac OS 10.5 and up. So we replace scrollingDeltaY with deltaY.
We only check deltaY's value if it is not zero because zero means no scrolling took place. Signed-off-by: John Arbuckle <programmingk...@gmail.com> --- v3 changes: - Added a comment explaining why we drop scrolling events in both the code and the patch comment. v2 changes: - Added a condition that drops scroll events that have a deltaY value of zero. ui/cocoa.m | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/ui/cocoa.m b/ui/cocoa.m index 2991ed4f19..3bae090101 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -802,14 +802,19 @@ - (void) handleEvent:(NSEvent *)event * This is in-line with standard Mac OS X UI behaviour. */ + /* + * When deltaY is zero, it means the scrolling device did not move + * for this event. So we drop the event. + */ + if ([event deltaY] != 0) { /* Determine if this is a scroll up or scroll down event */ - buttons = ([event scrollingDeltaY] > 0) ? - INPUT_BUTTON_WHEEL_UP : INPUT_BUTTON_WHEEL_DOWN; - qemu_input_queue_btn(dcl->con, buttons, true); - qemu_input_event_sync(); - qemu_input_queue_btn(dcl->con, buttons, false); - qemu_input_event_sync(); - + buttons = ([event deltaY] > 0) ? + INPUT_BUTTON_WHEEL_UP : INPUT_BUTTON_WHEEL_DOWN; + qemu_input_queue_btn(dcl->con, buttons, true); + qemu_input_event_sync(); + qemu_input_queue_btn(dcl->con, buttons, false); + qemu_input_event_sync(); + } /* * Since deltaY also reports scroll wheel events we prevent mouse * movement code from executing. -- 2.14.3 (Apple Git-98)