From 07a192047b802c03dfca8d088ee541aa1b29bcc8 Mon Sep 17 00:00:00 2001 From: juha Date: Fri, 8 Dec 2017 12:41:04 +0000 Subject: [PATCH] LCL: Extend horizontal mouse wheel messages for QT and QT5. Issue #32753, patch from AlexeyT. git-svn-id: trunk@56670 - --- lcl/interfaces/qt/qtwidgets.pas | 9 +++++++-- lcl/interfaces/qt5/qtwidgets.pas | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index 75a1a9046d..5712eb86f5 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -3970,14 +3970,19 @@ begin LastMouse.WinControl := LCLObject; LastMouse.WinHandle := TLCLIntfHandle(Self); LastMouse.MousePos := Point(MousePos.X, MousePos.Y); - - Msg.Msg := LM_MOUSEWHEEL; Msg.X := SmallInt(MousePos.X); Msg.Y := SmallInt(MousePos.Y); Msg.WheelDelta := SmallInt(QWheelEvent_delta(QWheelEventH(Event))); + Msg.Msg := LM_MOUSEWHEEL; + if QWheelEvent_orientation(QWheelEventH(Event)) = QtHorizontal then + begin + Msg.Msg := LM_MOUSEHWHEEL; + Msg.WheelDelta := -Msg.WheelDelta; + end; + {$IFDEF DARWIN} // LCL expects delta +-120, we must fix it. issue #20888 if (ChildOfComplexWidget in [ccwCustomControl, ccwAbstractScrollArea, diff --git a/lcl/interfaces/qt5/qtwidgets.pas b/lcl/interfaces/qt5/qtwidgets.pas index 87e76ab0ea..5476799579 100644 --- a/lcl/interfaces/qt5/qtwidgets.pas +++ b/lcl/interfaces/qt5/qtwidgets.pas @@ -3892,14 +3892,19 @@ begin LastMouse.WinControl := LCLObject; LastMouse.WinHandle := TLCLIntfHandle(Self); LastMouse.MousePos := Point(MousePos.X, MousePos.Y); - - Msg.Msg := LM_MOUSEWHEEL; Msg.X := SmallInt(MousePos.X); Msg.Y := SmallInt(MousePos.Y); Msg.WheelDelta := SmallInt(QWheelEvent_delta(QWheelEventH(Event))); + Msg.Msg := LM_MOUSEWHEEL; + if QWheelEvent_orientation(QWheelEventH(Event)) = QtHorizontal then + begin + Msg.Msg := LM_MOUSEHWHEEL; + Msg.WheelDelta := -Msg.WheelDelta; + end; + {$IFDEF DARWIN} // LCL expects delta +-120, we must fix it. issue #20888 if (ChildOfComplexWidget in [ccwCustomControl, ccwAbstractScrollArea,