diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 97f186cca..908d7e3a2 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -893,6 +893,12 @@ void TimelineWidget::ViewMousePressed(TimelineViewMouseEvent *event) if (GetConnectedNode() && active_tool_ != nullptr) { active_tool_->MousePress(event); } + + if (event->GetButton() != Qt::LeftButton) { + // Suspend tool immediately if the cursor isn't the primary button + active_tool_->MouseRelease(event); + active_tool_ = nullptr; + } } void TimelineWidget::ViewMouseMoved(TimelineViewMouseEvent *event) diff --git a/app/widget/timelinewidget/view/timelineviewbase.cpp b/app/widget/timelinewidget/view/timelineviewbase.cpp index 88798540c..c945f80db 100644 --- a/app/widget/timelinewidget/view/timelineviewbase.cpp +++ b/app/widget/timelinewidget/view/timelineviewbase.cpp @@ -134,7 +134,9 @@ bool TimelineViewBase::PlayheadPress(QMouseEvent *event) { QPointF scene_pos = mapToScene(event->pos()); - dragging_playhead_ = (scene_pos.x() >= playhead_scene_left_ && scene_pos.x() < playhead_scene_right_); + dragging_playhead_ = (event->button() == Qt::LeftButton + && scene_pos.x() >= playhead_scene_left_ + && scene_pos.x() < playhead_scene_right_); return dragging_playhead_; }