Qt: fixed getting itemAt(), problem was in misplaced MouseMove - should be used by viewport.issue #24976

git-svn-id: trunk@42678 -
This commit is contained in:
zeljko 2013-09-08 11:39:43 +00:00
parent 1ceaecab57
commit fe70c30788
2 changed files with 16 additions and 6 deletions

View File

@ -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);

View File

@ -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;