From 5397457c8db0226b03f9feab699ac50fd27259da Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 18 Jun 2020 03:35:59 +1000 Subject: [PATCH] timeline: treat non-primary clicks as non-moving Fixes bug where drag would get stuck if the user right clicked on the timeline. --- app/widget/timelinewidget/timelinewidget.cpp | 6 ++++++ app/widget/timelinewidget/view/timelineviewbase.cpp | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) 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_; }