diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index effdd2a19..785884cae 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -347,15 +347,18 @@ void NodeView::mousePressEvent(QMouseEvent *event) if (HandPress(event)) return; if (event->button() == Qt::RightButton) { - // Qt doesn't do this by default for some reason - if (!(event->modifiers() & Qt::ShiftModifier)) { - scene_.clearSelection(); - } - - // If there's an item here, select it QGraphicsItem* item = itemAt(event->pos()); - if (item) { - item->setSelected(true); + + if (!item || !item->isSelected()) { + // Qt doesn't do this by default for some reason + if (!(event->modifiers() & Qt::ShiftModifier)) { + scene_.clearSelection(); + } + + // If there's an item here, select it + if (item) { + item->setSelected(true); + } } }