diff --git a/scintilla/win32/ScintillaWin.cxx b/scintilla/win32/ScintillaWin.cxx index 41a8f8c7d..7f505ea0f 100644 --- a/scintilla/win32/ScintillaWin.cxx +++ b/scintilla/win32/ScintillaWin.cxx @@ -1650,7 +1650,8 @@ sptr_t ScintillaWin::MouseMessage(unsigned int iMessage, uptr_t wParam, sptr_t l MouseWheelDelta &wheelDelta = (iMessage == WM_MOUSEHWHEEL) ? horizontalWheelDelta : verticalWheelDelta; if (wheelDelta.Accumulate(wParam)) { - const int charsToScroll = charsPerScroll * wheelDelta.Actions(); + const int scrollDirectionAdjustment = (iMessage == WM_MOUSEHWHEEL) ? -1 : 1; + const int charsToScroll = charsPerScroll * wheelDelta.Actions() * scrollDirectionAdjustment; const int widthToScroll = static_cast(std::lround(charsToScroll * vs.aveCharWidth)); HorizontalScrollToClamped(xOffset + widthToScroll); }