OSX: add EMIE_MOUSE_WHEEL_X for detect side scrolling

master
Maksim 2020-11-08 17:24:21 +01:00
parent 2681edb058
commit 02cdbb3f39
2 changed files with 16 additions and 7 deletions

View File

@ -115,6 +115,7 @@ namespace irr
//! The mouse wheel was moved. Use Wheel value in event data to find out //! The mouse wheel was moved. Use Wheel value in event data to find out
//! in what direction and how fast. //! in what direction and how fast.
EMIE_MOUSE_WHEEL, EMIE_MOUSE_WHEEL,
EMIE_MOUSE_WHEEL_X, // only for OSX!
//! Left mouse button double click. //! Left mouse button double click.
//! This event is generated after the second EMIE_LMOUSE_PRESSED_DOWN event. //! This event is generated after the second EMIE_LMOUSE_PRESSED_DOWN event.

View File

@ -1051,13 +1051,21 @@ bool CIrrDeviceMacOSX::run()
case NSScrollWheel: case NSScrollWheel:
ievent.EventType = irr::EET_MOUSE_INPUT_EVENT; ievent.EventType = irr::EET_MOUSE_INPUT_EVENT;
ievent.MouseInput.Event = irr::EMIE_MOUSE_WHEEL; // MultiCraft specific thing to smoothly change HUD items,
ievent.MouseInput.Wheel = [(NSEvent *)event deltaY]; // using the side scrolling on the touchpad
if (ievent.MouseInput.Wheel < 1.0f) if ([event deltaX] != 0) {
ievent.MouseInput.Wheel *= 10.0f; ievent.MouseInput.Event = irr::EMIE_MOUSE_WHEEL_X;
else ievent.MouseInput.Wheel = (s32) [event deltaX];
ievent.MouseInput.Wheel *= 5.0f; postMouseEvent(event,ievent);
postMouseEvent(event,ievent); break;
}
ievent.MouseInput.Event = irr::EMIE_MOUSE_WHEEL;
ievent.MouseInput.Wheel = (s32) [event deltaY];
if (ievent.MouseInput.Wheel < 1.0f)
ievent.MouseInput.Wheel *= 10.0f;
else
ievent.MouseInput.Wheel *= 5.0f;
postMouseEvent(event,ievent);
break; break;
default: default: