diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index c845df61c1..982ad6f5b1 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -12321,6 +12321,7 @@ var MousePos: TQtPoint; Item: QTreeWidgetItemH; ALCLEvent: QLCLMessageEventH; + W: QHeaderViewH; begin Result := False; if (ViewStyle = Ord(vsReport)) and Checkable then @@ -12365,7 +12366,20 @@ begin Result := inherited itemViewViewportEventFilter(Sender, Event); end; end else - Result := inherited itemViewViewportEventFilter(Sender, Event); + begin + if (QEvent_type(Event) = QEventMouseMove) and (LCLObject <> nil) then + begin + W := QTreeView_header(QTreeViewH(Widget)); + if QWidget_isVisible(W) and QWidget_isVisibleTo(W, Widget) then + begin + BeginEventProcessing; + Result := SlotMouseMove(Sender, Event); + EndEventProcessing; + end else + Result := inherited itemViewViewportEventFilter(Sender, Event); + end else + Result := inherited itemViewViewportEventFilter(Sender, Event); + end; end; procedure TQtTreeWidget.OwnerDataNeeded(ARect: TRect); diff --git a/lcl/interfaces/qt/qtwscomctrls.pp b/lcl/interfaces/qt/qtwscomctrls.pp index e57df57a89..700653fe16 100644 --- a/lcl/interfaces/qt/qtwscomctrls.pp +++ b/lcl/interfaces/qt/qtwscomctrls.pp @@ -1667,11 +1667,7 @@ begin end else begin QtTreeWidget := TQtTreeWidget(ALV.Handle); - HeaderOffset := QtTreeWidget.getHeaderHeight(AOrientation); - HeaderOffset := y - HeaderOffset; - if HeaderOffset < 0 then - exit(-1); // do not return anything if Y is inside header. - TWI := QtTreeWidget.itemAt(x, HeaderOffset); + TWI := QtTreeWidget.itemAt(x, y); Result := QtTreeWidget.getRow(TWI); end; end;