diff options
author | Paul Lemire <paul.lemire350@gmail.com> | 2015-12-05 18:08:16 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2015-12-07 19:07:17 +0000 |
commit | 32607bdf4c0261f160cfc62c412f76c3c6555996 (patch) | |
tree | 645b2cbb59ae6ccd9b09ba5d85a0664e0f0a5ce9 /src/input/backend/mousecontroller.cpp | |
parent | b682dd89d62c7e565e87ee4c8fff48805874458f (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.cpp | 21 |
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(); } } |