From d52d5b13b28db89b597e19694b36111879990980 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Tue, 1 Nov 2022 12:48:48 -0700 Subject: [PATCH] seekablewidget: allow rubberband select while holding ctrl Fixes #2061 --- app/widget/timeruler/seekablewidget.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/widget/timeruler/seekablewidget.cpp b/app/widget/timeruler/seekablewidget.cpp index bb154d59e..f3df0b146 100644 --- a/app/widget/timeruler/seekablewidget.cpp +++ b/app/widget/timeruler/seekablewidget.cpp @@ -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);