From d79e037df56236c7d0f0824853b292d15ab75c27 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Mon, 8 Feb 2016 20:38:37 -0200 Subject: Scatterplot: interaction now happens only via left mouse button. --- scatterplot.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'scatterplot.cpp') 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: -- cgit v1.2.3