diff options
author | Juha Vuolle <juha.vuolle@qt.io> | 2023-09-18 15:11:25 +0300 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2023-10-10 12:54:02 +0200 |
commit | 3ee57b83870567d52acc00e534ef022a6d3b150e (patch) | |
tree | 7622648e398c490192730016185e04f7f379e84a /src/android/jar/src/org/qtproject/qt/android/QtNative.java | |
parent | 614e0f1daa9da2c285e2fd3868f7ebfa9837164c (diff) |
Handle ACTION_POINTER_UP with tablet events
The ACTION_POINTER_UP is used when a non-primary pointer (touch, mouse
stylus, eraser) goes up. Without handling this action in these
cases, the table event remains in 'down' state (misses the
QEvent::TabletRelease) and as a consequence when it is next put on the
screen, eg. a line will be drawn to the new position (in case of a drawing
application).
In addition use getActionMasked() to get the action; non-masked
events would contain the index of the pointer too, and wouldn't
match with ACTION_POINTER_UP whose numeric value is 6. Rather the
actions would be in the lines of:
261, // ACTION_POINTER_DOWN(1), 6 with getActionMasked()
517, // ACTION_POINTER_DOWN(2), 6 with getActionMasked()
And so on.
Pick-to: 6.6 6.5
Fixes: QTBUG-86297
Change-Id: I1b50ca4d19b611aec8a5c280ed0521e2f11797b0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt/android/QtNative.java')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt/android/QtNative.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/QtNative.java index 161a489a56..260e6d414e 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java @@ -581,7 +581,7 @@ public class QtNative if (event.getToolType(0) == MotionEvent.TOOL_TYPE_MOUSE) { sendMouseEvent(event, id); } else if (m_tabletEventSupported && pointerType != 0) { - tabletEvent(id, event.getDeviceId(), event.getEventTime(), event.getAction(), pointerType, + tabletEvent(id, event.getDeviceId(), event.getEventTime(), event.getActionMasked(), pointerType, event.getButtonState(), event.getX(), event.getY(), event.getPressure()); } else { touchBegin(id); |