summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsWindow.java
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-07-18 10:12:40 +0800
committerPo Lu <luangruo@yahoo.com>2023-07-18 10:12:40 +0800
commit5ff31bf36cf00f9d5a378ce139fd5c2ae8d3f25e (patch)
tree5f1d6659da915840edcb12ed1931a8c379cedfce /java/org/gnu/emacs/EmacsWindow.java
parent46fd03a49617066fca87000378771caedfd150f3 (diff)
Update Android port
* doc/lispref/commands.texi (Touchscreen Events): Describe treatment of canceled touch sequences during touch event translation. * java/org/gnu/emacs/EmacsNative.java (EmacsNative): Update JNI prototypes. * java/org/gnu/emacs/EmacsWindow.java (motionEvent): Set cancelation flag in events sent where appropriate. * lisp/touch-screen.el (touch-screen-handle-point-update): Improve treatment of horizontal scrolling near window edges. (touch-screen-handle-touch): Don't handle point up if the touch sequence has been canceled. * src/android.c (sendTouchDown, sendTouchUp, sendTouchMove): New argument `flags'. * src/androidgui.h (enum android_touch_event_flags): New enum. (struct android_touch_event): New field `flags'. * src/androidterm.c (handle_one_android_event): Report cancelation in TOUCHSCREEN_END_EVENTs. * src/keyboard.c (make_lispy_event): Fix botched merge.
Diffstat (limited to 'java/org/gnu/emacs/EmacsWindow.java')
-rw-r--r--java/org/gnu/emacs/EmacsWindow.java19
1 files changed, 13 insertions, 6 deletions
diff --git a/java/org/gnu/emacs/EmacsWindow.java b/java/org/gnu/emacs/EmacsWindow.java
index 0e96a8382d0..8118479319e 100644
--- a/java/org/gnu/emacs/EmacsWindow.java
+++ b/java/org/gnu/emacs/EmacsWindow.java
@@ -1025,23 +1025,30 @@ public final class EmacsWindow extends EmacsHandleObject
/* Touch down event. */
EmacsNative.sendTouchDown (this.handle, coordinate.x,
coordinate.y, time,
- coordinate.id);
+ coordinate.id, 0);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
+ /* Touch up event. */
+ EmacsNative.sendTouchUp (this.handle, coordinate.x,
+ coordinate.y, time,
+ coordinate.id, 0);
+ break;
+
case MotionEvent.ACTION_CANCEL:
- /* Touch up event. Android documentation says ACTION_CANCEL
- should be treated as more or less equivalent to ACTION_UP,
- so that is what is done here. */
+ /* Touch sequence cancellation event. */
EmacsNative.sendTouchUp (this.handle, coordinate.x,
- coordinate.y, time, coordinate.id);
+ coordinate.y, time,
+ coordinate.id,
+ 1 /* ANDROID_TOUCH_SEQUENCE_CANCELED */);
break;
case MotionEvent.ACTION_MOVE:
/* Pointer motion event. */
EmacsNative.sendTouchMove (this.handle, coordinate.x,
- coordinate.y, time, coordinate.id);
+ coordinate.y, time,
+ coordinate.id, 0);
break;
}
}