summaryrefslogtreecommitdiffstats
path: root/src/input/backend/mousecontroller.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire350@gmail.com>2015-12-05 18:08:16 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-12-07 19:07:17 +0000
commit32607bdf4c0261f160cfc62c412f76c3c6555996 (patch)
tree645b2cbb59ae6ccd9b09ba5d85a0664e0f0a5ce9 /src/input/backend/mousecontroller.cpp
parentb682dd89d62c7e565e87ee4c8fff48805874458f (diff)
MouseController: various fixes
Change-Id: Ie6f90a8b0ffca4a20b90edebb70b41a210246d2a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/input/backend/mousecontroller.cpp')
-rw-r--r--src/input/backend/mousecontroller.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/input/backend/mousecontroller.cpp b/src/input/backend/mousecontroller.cpp
index 2a39c088d..e82ae1b43 100644
--- a/src/input/backend/mousecontroller.cpp
+++ b/src/input/backend/mousecontroller.cpp
@@ -98,9 +98,9 @@ bool MouseController::isButtonPressed(int buttonIdentifier) const
case QMouseController::Left:
return m_mouseState.leftPressed;
case QMouseController::Center:
- return m_mouseState.rightPressed;
- case QMouseController::Right:
return m_mouseState.centerPressed;
+ case QMouseController::Right:
+ return m_mouseState.rightPressed;
default:
break;
}
@@ -114,12 +114,17 @@ QVector<Qt3DCore::QNodeId> MouseController::mouseInputs() const
void MouseController::updateMouseEvents(const QList<QMouseEvent> &events)
{
- Q_FOREACH (const QMouseEvent &e, events) {
- m_mouseState.leftPressed = e.buttons() & (Qt::LeftButton);
- m_mouseState.centerPressed = e.buttons() & (Qt::MiddleButton);
- m_mouseState.rightPressed = e.buttons() & (Qt::RightButton);
- m_mouseState.xAxis = m_previousPos.x() - e.screenPos().x();
- m_mouseState.yAxis = m_previousPos.y() - e.screenPos().y();
+ if (!events.isEmpty()) {
+ Q_FOREACH (const QMouseEvent &e, events) {
+ m_mouseState.leftPressed = e.buttons() & (Qt::LeftButton);
+ m_mouseState.centerPressed = e.buttons() & (Qt::MiddleButton);
+ m_mouseState.rightPressed = e.buttons() & (Qt::RightButton);
+ m_mouseState.xAxis = 0.1 * (e.screenPos().x() - m_previousPos.x());
+ m_mouseState.yAxis = 0.1 * (m_previousPos.y() - e.screenPos().y());
+ m_previousPos = e.screenPos();
+ }
+ } else {
+ m_mouseState = MouseState();
}
}