diff options
author | Samuel Fadel <samuelfadel@gmail.com> | 2016-02-08 20:38:37 -0200 |
---|---|---|
committer | Samuel Fadel <samuelfadel@gmail.com> | 2016-02-08 20:38:37 -0200 |
commit | d79e037df56236c7d0f0824853b292d15ab75c27 (patch) | |
tree | d1a5764bf5251482adf96103c8fb88ede4acc8b2 /scatterplot.cpp | |
parent | 6ce50a77d7659e5e7fbcaceead0e17d37ce8856d (diff) |
Scatterplot: interaction now happens only via left mouse button.
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: |