- // This is somewhat hacky... we look at the contents item that is at the given y position, since
- // it has the full height. From this item, we can then determine the row index and hence the ChatLine.
- // ChatItems cover their ChatLine, so we won't get to the latter directly.
- ChatItem *contentItem = static_cast<ChatItem *>(itemAt(QPointF(_secondColHandle->sceneRight() + 1, y)));
- if(!contentItem) return -1;
- return contentItem->row();
+ QList<QGraphicsItem*> itemList = items(QPointF(0, y));
+
+ // ChatLine should be at the bottom of the list
+ for(int i = itemList.count()-1; i >= 0; i--) {
+ ChatLine *line = qgraphicsitem_cast<ChatLine *>(itemList.at(i));
+ if(line)
+ return line->row();
+ }
+ return -1;