diff options
Diffstat (limited to 'scatterplot.cpp')
-rw-r--r-- | scatterplot.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/scatterplot.cpp b/scatterplot.cpp index f501267..ca65c2c 100644 --- a/scatterplot.cpp +++ b/scatterplot.cpp @@ -31,6 +31,9 @@ static const QColor CROSSHAIR_COLOR2(0, 0, 0); // Selection settings static const QColor SELECTION_COLOR(128, 128, 128, 96); +// The mouse button used for interaction +static const Qt::MouseButton MOUSE_BUTTON = Qt::LeftButton; + class QuadTree { public: @@ -582,6 +585,10 @@ void Scatterplot::updateBrush(QSGNode *node) void Scatterplot::mousePressEvent(QMouseEvent *event) { + if (!(event->buttons() & MOUSE_BUTTON)) { + return; + } + switch (m_interactionState) { case STATE_NONE: case STATE_SELECTED: @@ -602,6 +609,10 @@ void Scatterplot::mousePressEvent(QMouseEvent *event) void Scatterplot::mouseMoveEvent(QMouseEvent *event) { + if (!(event->buttons() & MOUSE_BUTTON)) { + return; + } + switch (m_interactionState) { case STATE_SELECTING: m_dragCurrentPos = event->localPos(); @@ -623,6 +634,13 @@ void Scatterplot::mouseMoveEvent(QMouseEvent *event) void Scatterplot::mouseReleaseEvent(QMouseEvent *event) { + if (event->buttons() & MOUSE_BUTTON) { + // From the docs: for mouse release events, buttons() excludes the + // button that caused the event. Therefore, we bail out if the button is + // included in buttons(). + return; + } + switch (m_interactionState) { case STATE_NONE: case STATE_SELECTED: |