X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fchatline.cpp;h=08d089ecf113233125199706404dc8714dc257b5;hb=e3314686ed9fe6203ed194ab4d73791176c2e051;hp=6032cbef5969814bdd94badb395ccb621885c546;hpb=6330f7fe3d19113cbf29944a9b6e8b503893d4a9;p=quassel.git diff --git a/src/qtui/chatline.cpp b/src/qtui/chatline.cpp index 6032cbef..08d089ec 100644 --- a/src/qtui/chatline.cpp +++ b/src/qtui/chatline.cpp @@ -49,7 +49,8 @@ ChatLine::ChatLine(int row, QAbstractItemModel *model, _width(width), _height(_contentsItem.height()), _selection(0), - _mouseGrabberItem(0) + _mouseGrabberItem(0), + _hoverItem(0) { Q_ASSERT(model); QModelIndex index = model->index(row, ChatLineModel::ContentsColumn); @@ -205,8 +206,7 @@ void ChatLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, MsgId myMsgId = myIdx.data(MessageModel::MsgIdRole).value(); Message::Flags flags = (Message::Flags)myIdx.data(MessageModel::FlagsRole).toInt(); - // don't show the marker if we wrote that new line - if(!(flags & Message::Self)) { + if(chatView()->isMarkerLineVisible()) { BufferId bufferId = BufferId(chatScene()->idString().toInt()); MsgId lastSeenMsgId = Client::networkModel()->markerLineMsgId(bufferId); if(lastSeenMsgId < myMsgId && lastSeenMsgId >= prevMsgId) { @@ -247,14 +247,17 @@ void ChatLine::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { void ChatLine::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { ChatItem *item = mouseEventTargetItem(event->pos()); - if(item) + if(item && !_hoverItem) { + _hoverItem = item; item->hoverEnterEvent(event); + } } void ChatLine::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { - ChatItem *item = mouseEventTargetItem(event->pos()); - if(item) - item->hoverLeaveEvent(event); + if(_hoverItem) { + _hoverItem->hoverLeaveEvent(event); + _hoverItem = 0; + } } void ChatLine::hoverMoveEvent(QGraphicsSceneHoverEvent *event) {