summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorRomain Pokrzywka <romain.pokrzywka@bluescape.com>2018-07-23 16:28:35 -0500
committerRomain Pokrzywka <romain.pokrzywka@gmail.com>2018-07-24 20:46:59 +0000
commit708fa860bc877995256f08cd55bf1421d510e5f3 (patch)
treec2f9238bb2d62596209b1277e79aac56bc63a31e /src/plugins/platforms
parent947df4e63ec9ef74de81f95eacc994a440874cbd (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.cpp9
-rw-r--r--src/plugins/platforms/windows/qwindowstabletsupport.h1
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;
};