From 9993e0a58839024d1831f8671855436ffc805a4b Mon Sep 17 00:00:00 2001 From: James Turner Date: Mon, 13 Jan 2014 21:08:32 +0000 Subject: [PATCH] Fix bug 1286 - mouse scroll-wheel+shift ignored On Mac, the OS is mapping shift+wheel to horizontal scrolling for those of us without a mighty-mouse or trackpad. Detect this case and map back to vertical scrolling inside FlightGear for the moment. https://code.google.com/p/flightgear-bugs/issues/detail?id=1286 --- src/Viewer/FGEventHandler.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Viewer/FGEventHandler.cxx b/src/Viewer/FGEventHandler.cxx index c3bf622e0..85d011202 100644 --- a/src/Viewer/FGEventHandler.cxx +++ b/src/Viewer/FGEventHandler.cxx @@ -251,6 +251,18 @@ bool FGEventHandler::handle(const osgGA::GUIEventAdapter& ea, button = 4; else button = -1; + +#if defined(SG_MAC) + // bug https://code.google.com/p/flightgear-bugs/issues/detail?id=1286 + // Mac (Cocoa) interprets shuft+wheel as horizontal scroll + if (ea.getModKeyMask() & osgGA::GUIEventAdapter::MODKEY_SHIFT) { + if (ea.getScrollingDeltaX() > 0) + button = 3; + else if (ea.getScrollingDeltaX() < 0) + button = 4; + } +#endif + } else if (ea.getScrollingMotion() == osgGA::GUIEventAdapter::SCROLL_UP) button = 3; else