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
//! in what direction and how fast.
EMIE_MOUSE_WHEEL,
EMIE_MOUSE_WHEEL_X, // only for OSX!
//! Left mouse button double click.
//! This event is generated after the second EMIE_LMOUSE_PRESSED_DOWN event.

View File

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