diff --git a/lib/macro/macro-segment-list.cpp b/lib/macro/macro-segment-list.cpp index b9f683ec..96fc35e4 100644 --- a/lib/macro/macro-segment-list.cpp +++ b/lib/macro/macro-segment-list.cpp @@ -3,6 +3,7 @@ #include "ui-helpers.hpp" #include +#include #include #include #include @@ -277,6 +278,7 @@ void MacroSegmentList::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton || event->button() == Qt::RightButton) { + _dragStartPos = event->globalPosition().toPoint(); _dragPosition = GetDragIndex(event->globalPosition().toPoint()); emit SelectionChanged(_dragPosition); } else { @@ -287,6 +289,11 @@ void MacroSegmentList::mousePressEvent(QMouseEvent *event) void MacroSegmentList::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton && _dragPosition != -1) { + if ((event->globalPosition().toPoint() - _dragStartPos) + .manhattanLength() < + QApplication::startDragDistance()) { + return; + } auto item = _contentLayout->itemAt(_dragPosition); if (!item) { return; diff --git a/lib/macro/macro-segment-list.hpp b/lib/macro/macro-segment-list.hpp index 13ef7a4a..13ac931b 100644 --- a/lib/macro/macro-segment-list.hpp +++ b/lib/macro/macro-segment-list.hpp @@ -80,6 +80,7 @@ private: int _dragPosition = -1; int _dropLineIdx = -1; QPoint _dragCursorPos; + QPoint _dragStartPos; std::thread _autoScrollThread; std::atomic_bool _autoScroll{false};