diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-07-12 10:15:30 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-07-19 07:03:46 +0000 |
commit | 7eaf108d53e9d37d214e56218a40220fbca94e43 (patch) | |
tree | 5c469af92473995cc35530dfd83c1248c09c18f0 /src/input | |
parent | bd02208b69b417e0d84109bb36ace59a09cf37ad (diff) |
MouseDevice: do not reset the MouseState if we have not received events
Only reset the axes but keep the old button state for the buttons as having no
new events means the state hasn't changed since the last frame.
Change-Id: I8de6e1cd0a42ac3d70228876032ed9fb98e2e979
Task-number: QTBUG-54706
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/input')
-rw-r--r-- | src/input/backend/mousedevice.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/input/backend/mousedevice.cpp b/src/input/backend/mousedevice.cpp index 09ab677f3..e53078cb0 100644 --- a/src/input/backend/mousedevice.cpp +++ b/src/input/backend/mousedevice.cpp @@ -107,11 +107,11 @@ bool MouseDevice::isButtonPressed(int buttonIdentifier) const void MouseDevice::updateMouseEvents(const QList<QT_PREPEND_NAMESPACE(QMouseEvent)> &events) { - if (!events.isEmpty()) { - // Reset axis values before we accumulate new values for this frame - m_mouseState.xAxis = 0.0f; - m_mouseState.yAxis = 0.0f; + // Reset axis values before we accumulate new values for this frame + m_mouseState.xAxis = 0.0f; + m_mouseState.yAxis = 0.0f; + if (!events.isEmpty()) { for (const QT_PREPEND_NAMESPACE(QMouseEvent) &e : events) { m_mouseState.leftPressed = e.buttons() & (Qt::LeftButton); m_mouseState.centerPressed = e.buttons() & (Qt::MiddleButton); @@ -124,8 +124,6 @@ void MouseDevice::updateMouseEvents(const QList<QT_PREPEND_NAMESPACE(QMouseEvent m_wasPressed = pressed; m_previousPos = e.screenPos(); } - } else { - m_mouseState = MouseState(); } } |