diff --git a/scintilla/win32/ScintillaWin.cxx b/scintilla/win32/ScintillaWin.cxx index c5b51bbb4..4b1785562 100644 --- a/scintilla/win32/ScintillaWin.cxx +++ b/scintilla/win32/ScintillaWin.cxx @@ -1647,7 +1647,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); }