seekablewidget: allow rubberband select while holding ctrl

Fixes #2061
This commit is contained in:
itsmattkc
2022-11-01 12:48:48 -07:00
parent d6bb3cf5b6
commit d52d5b13b2
+10
View File
@@ -179,6 +179,8 @@ void SeekableWidget::mousePressEvent(QMouseEvent *event)
if (HandPress(event)) {
return;
} else if (event->modifiers() & Qt::ControlModifier) {
selection_manager_.RubberBandStart(event);
} else if (resize_item_) {
// Handle selection, even though we won't be using it for dragging
if (!(event->modifiers() & Qt::ShiftModifier)) {
@@ -203,6 +205,9 @@ void SeekableWidget::mouseMoveEvent(QMouseEvent *event)
{
if (HandMove(event)) {
return;
} else if (selection_manager_.IsRubberBanding()) {
selection_manager_.RubberBandMove(event);
viewport()->update();
} else if (selection_manager_.IsDragging()) {
selection_manager_.DragMove(event);
} else if (dragging_) {
@@ -228,6 +233,11 @@ void SeekableWidget::mouseReleaseEvent(QMouseEvent *event)
return;
}
if (selection_manager_.IsRubberBanding()) {
selection_manager_.RubberBandStop();
return;
}
if (selection_manager_.IsDragging()) {
MultiUndoCommand *command = new MultiUndoCommand();
selection_manager_.DragStop(command);