diff options
| author | Jules Aguillon | 2022-12-04 18:21:59 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2022-12-04 18:21:59 +0100 |
| commit | 804ea84981a2d6ae6b99577ce87640df376e872f (patch) | |
| tree | 3e4638130b3ccd59535a05cf7af6cd36ebc9449b | |
| parent | aaf3d8b63001e3bbff4fe16458fc7c392db867f1 (diff) | |
| download | unexpected-keyboard-804ea84981a2d6ae6b99577ce87640df376e872f.tar.gz unexpected-keyboard-804ea84981a2d6ae6b99577ce87640df376e872f.zip | |
Correctly handle pointer cancel events
The cancel event ends the motion, it doesn't apply to a single pointer
like it was previously expected.
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2View.java | 2 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Pointers.java | 10 |
2 files changed, 5 insertions, 7 deletions
diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 41d32ef..ce6c9f4 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -172,7 +172,7 @@ public class Keyboard2View extends View _pointers.onTouchMove(event.getX(p), event.getY(p), event.getPointerId(p)); break; case MotionEvent.ACTION_CANCEL: - _pointers.onTouchCancel(event.getPointerId(event.getActionIndex())); + _pointers.onTouchCancel(); break; default: return (false); diff --git a/srcs/juloo.keyboard2/Pointers.java b/srcs/juloo.keyboard2/Pointers.java index e8dbc87..46b76fc 100644 --- a/srcs/juloo.keyboard2/Pointers.java +++ b/srcs/juloo.keyboard2/Pointers.java @@ -48,6 +48,8 @@ public final class Pointers implements Handler.Callback public void clear() { + for (Pointer p : _ptrs) + stopKeyRepeat(p); _ptrs.clear(); } @@ -128,13 +130,9 @@ public final class Pointers implements Handler.Callback } } - public void onTouchCancel(int pointerId) + public void onTouchCancel() { - Pointer ptr = getPtr(pointerId); - if (ptr == null) - return; - stopKeyRepeat(ptr); - removePtr(ptr); + clear(); _handler.onPointerFlagsChanged(true); } |
