diff options
author | Romain Pokrzywka <romain.pokrzywka@bluescape.com> | 2018-07-23 16:28:35 -0500 |
---|---|---|
committer | Romain Pokrzywka <romain.pokrzywka@gmail.com> | 2018-07-24 20:46:59 +0000 |
commit | 708fa860bc877995256f08cd55bf1421d510e5f3 (patch) | |
tree | c2f9238bb2d62596209b1277e79aac56bc63a31e /src/plugins/platforms | |
parent | 947df4e63ec9ef74de81f95eacc994a440874cbd (diff) |
Windows QPA: Fix tablet event coords delay for tablets in pen mode
Now that the mouse mode check is only done once for the first event
after the TabletEnterProximityEvent, the m_oldGlobalPosF member has
lost its purpose and should be removed.
Worse, its value was used instead of currentGlobalPosF when in pen mode,
resulting in an unnecessary 1-frame delay in the reported positions
in the tablet events.
Task-number: QTBUG-36937
Change-Id: I6bd2db57898850a65088d9bb41fbfbd96eac54f5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/windows/qwindowstabletsupport.cpp | 9 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowstabletsupport.h | 1 |
2 files changed, 3 insertions, 7 deletions
diff --git a/src/plugins/platforms/windows/qwindowstabletsupport.cpp b/src/plugins/platforms/windows/qwindowstabletsupport.cpp index 280519d39d..6acb62ad8f 100644 --- a/src/plugins/platforms/windows/qwindowstabletsupport.cpp +++ b/src/plugins/platforms/windows/qwindowstabletsupport.cpp @@ -489,11 +489,8 @@ bool QWindowsTabletSupport::translateTabletPacketEvent() const int z = currentDevice == QTabletEvent::FourDMouse ? int(packet.pkZ) : 0; - // This code is to delay the tablet data one cycle to sync with the mouse location. - QPointF globalPosF = m_oldGlobalPosF; - const QPointF currentGlobalPosF = + QPointF globalPosF = m_devices.at(m_currentDevice).scaleCoordinates(packet.pkX, packet.pkY, virtualDesktopArea); - m_oldGlobalPosF = currentGlobalPosF; QWindow *target = QGuiApplicationPrivate::tabletDevicePoint(uniqueId).target; // Pass to window that grabbed it. @@ -501,10 +498,10 @@ bool QWindowsTabletSupport::translateTabletPacketEvent() const QPoint mouseLocation = QWindowsCursor::mousePosition(); if (m_state == PenProximity) { m_state = PenDown; - m_mode = (mouseLocation - currentGlobalPosF).manhattanLength() > m_absoluteRange + m_mode = (mouseLocation - globalPosF).manhattanLength() > m_absoluteRange ? MouseMode : PenMode; qCDebug(lcQpaTablet) << __FUNCTION__ << "mode=" << m_mode << "pen:" - << currentGlobalPosF << "mouse:" << mouseLocation; + << globalPosF << "mouse:" << mouseLocation; } if (m_mode == MouseMode) globalPosF = mouseLocation; diff --git a/src/plugins/platforms/windows/qwindowstabletsupport.h b/src/plugins/platforms/windows/qwindowstabletsupport.h index 340818c3f7..9379dd72d6 100644 --- a/src/plugins/platforms/windows/qwindowstabletsupport.h +++ b/src/plugins/platforms/windows/qwindowstabletsupport.h @@ -149,7 +149,6 @@ private: bool m_tiltSupport; QVector<QWindowsTabletDeviceData> m_devices; int m_currentDevice; - QPointF m_oldGlobalPosF; Mode m_mode = PenMode; State m_state = PenUp; }; |