if (dragMode() == QGraphicsView::RubberBandDrag || (event->modifiers() == Qt::ControlModifier && m_tool != SPACERTOOL && m_operationMode != RESIZESTART && m_operationMode != RESIZEEND)) {
event->setAccepted(true);
m_moveOpMode = NONE;
- QGraphicsView::mouseMoveEvent(event);
+ if (event->modifiers() != Qt::ControlModifier || dragMode() == QGraphicsView::RubberBandDrag) QGraphicsView::mouseMoveEvent(event);
return;
}
setDragMode(QGraphicsView::RubberBandDrag);
if (!(event->modifiers() & Qt::ControlModifier)) {
resetSelectionGroup();
+ if (m_dragItem) {
+ emit clipItemSelected(NULL);
+ m_dragItem = NULL;
+ }
scene()->clearSelection();
}
m_blockRefresh = false;
return;
}
QList<QGraphicsItem *> selection = m_scene->selectedItems();
+ if (m_dragItem && !selection.contains(m_dragItem)) {
+ selection << m_dragItem;
+ }
if (selection.isEmpty()) return;
QRectF rectUnion;
// Find top left position of selection