From a442354ef60a90fb7869de06b2752d272d88735b Mon Sep 17 00:00:00 2001 From: mjbudd77 Date: Wed, 22 Dec 2021 23:41:07 -0500 Subject: [PATCH] Added a short delay to TAS marker drag n drop setup in the event that the mouse button is quickly released. --- src/drivers/Qt/TasEditor/TasEditorWindow.cpp | 13 ++++++++++++- src/drivers/Qt/TasEditor/TasEditorWindow.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/drivers/Qt/TasEditor/TasEditorWindow.cpp b/src/drivers/Qt/TasEditor/TasEditorWindow.cpp index 71345500..45890ff2 100644 --- a/src/drivers/Qt/TasEditor/TasEditorWindow.cpp +++ b/src/drivers/Qt/TasEditor/TasEditorWindow.cpp @@ -4320,7 +4320,10 @@ void QPianoRoll::mouseDoubleClickEvent(QMouseEvent * event) update(); } } - startDraggingMarker( mouse_x, mouse_y, row_index, column_index); + // Delay drag event by 100ms incase the button is quickly released + QTimer::singleShot( 100, this, SLOT(setupMarkerDrag(void)) ); + + //startDraggingMarker( mouse_x, mouse_y, row_index, column_index); } else if (column_index >= COLUMN_JOYPAD1_A && column_index <= COLUMN_JOYPAD4_R) { @@ -5581,6 +5584,14 @@ void QPianoRoll::startDraggingPlaybackCursor(void) handlePlaybackCursorDragging(); } } +void QPianoRoll::setupMarkerDrag(void) +{ + if ( QApplication::mouseButtons() & Qt::LeftButton ) + { + startDraggingMarker( mouse_x, mouse_y, rowUnderMouseAtPress, columnUnderMouseAtPress); + } +} + void QPianoRoll::startDraggingMarker(int mouseX, int mouseY, int rowIndex, int columnIndex) { if (dragMode == DRAG_MODE_NONE) diff --git a/src/drivers/Qt/TasEditor/TasEditorWindow.h b/src/drivers/Qt/TasEditor/TasEditorWindow.h index f499fda2..98b83b5f 100644 --- a/src/drivers/Qt/TasEditor/TasEditorWindow.h +++ b/src/drivers/Qt/TasEditor/TasEditorWindow.h @@ -249,6 +249,7 @@ class QPianoRoll : public QWidget void hbarChanged(int val); void vbarChanged(int val); void vbarActionTriggered(int act); + void setupMarkerDrag(void); }; class TasRecentProjectAction : public QAction