From: Manuel Nickschas Date: Thu, 17 Jun 2010 08:25:23 +0000 (+0200) Subject: Correctly handle overlapping graphicsitems X-Git-Tag: 0.7-beta1~45 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=894e2dd800e90ab52618fa620b1c995545506574 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. --- 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; }