From 894e2dd800e90ab52618fa620b1c995545506574 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Thu, 17 Jun 2010 10:25:23 +0200 Subject: [PATCH] Correctly handle overlapping graphicsitems ChatScene::chatItemAt() didn't cope with overlapping items (since we didn't have overlapping items before). Now that we introduced the new markerline, mouse events would be eaten by it. Fix0red. --- src/qtui/chatscene.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 46cfc3eb..d78ee1c8 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -187,9 +187,11 @@ ChatLine *ChatScene::chatLine(MsgId msgId, bool matchExact) const { } ChatItem *ChatScene::chatItemAt(const QPointF &scenePos) const { - ChatLine *line = qgraphicsitem_cast(itemAt(scenePos)); - if(line) - return line->itemAt(line->mapFromScene(scenePos)); + foreach(QGraphicsItem *item, items(scenePos, Qt::IntersectsItemBoundingRect, Qt::AscendingOrder)) { + ChatLine *line = qgraphicsitem_cast(item); + if(line) + return line->itemAt(line->mapFromScene(scenePos)); + } return 0; } -- 2.20.1