bool ChatLine::sceneEvent(QEvent *event) { if(event->type() == QEvent::GrabMouse) { // get mouse cursor pos relative to us ChatView *view = chatScene()->chatView(); QPointF linePos = mapFromScene(view->mapToScene(view->mapFromGlobal(QCursor::pos()))); setMouseGrabberItem(itemAt(linePos)); } else if(event->type() == QEvent::UngrabMouse) { setMouseGrabberItem(0); } return QGraphicsItem::sceneEvent(event); }