diff --git a/Core/GameEngine/Source/GameClient/Input/Mouse.cpp b/Core/GameEngine/Source/GameClient/Input/Mouse.cpp index 67ceb096461..4abb1d44297 100644 --- a/Core/GameEngine/Source/GameClient/Input/Mouse.cpp +++ b/Core/GameEngine/Source/GameClient/Input/Mouse.cpp @@ -824,7 +824,9 @@ void Mouse::createStreamMessages() { msg = TheMessageStream->appendMessage( GameMessage::MSG_RAW_MOUSE_WHEEL ); msg->appendPixelArgument( m_currMouse.pos ); - msg->appendIntegerArgument( m_currMouse.wheelPos / 120 ); // wheel delta + // TheSuperHackers @bugfix Preserve wheel delta sign for touchpad scroll direction detection + const Int wheelTicks = m_currMouse.wheelPos / MOUSE_WHEEL_DELTA; + msg->appendIntegerArgument( m_currMouse.wheelPos > 0 ? max( 1, wheelTicks ) : min( -1, wheelTicks ) ); msg->appendIntegerArgument( TheKeyboard->getModifierFlags() ); }