1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-12 22:40:46 -08:00

Update Android port

* INSTALL.android: Document support for gnutls and libgmp.
* build-aux/ndk-build-helper-1.mk (NDK_SO_NAMES, NDK_INCLUDES)
(SYSTEM_LIBRARIES):
* build-aux/ndk-build-helper-2.mk: Recursively resolve and add
shared library dependencies; even those of static libraries.
* build-aux/ndk-module-extract.awk: Fix makefile_imports code.
* configure.ac (ANDROID_SDK_18_OR_EARLIER, XCONFIGURE)
(LIBGMP_CFLAGS): Enable GMP and gnutls on Android.

* cross/ndk-build/Makefile.in (LOCAL_EXPORT_C_INCLUDES):
* cross/ndk-build/ndk-build-shared-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
Unsupported suffix)::($(LOCAL_MODULE_FILENAME)):
* cross/ndk-build/ndk-build-static-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
Unsupported suffix):
* cross/ndk-build/ndk-clear-vars.mk:
* cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES):
(NDK_LOCAL_EXPORT_C_INCLUDES_$(LOCAL_MODULE)):
(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)):
Implement ``LOCAL_ASM_RULE'' and ``LOCAL_C_ADDITIONAL_FLAGS''
extensions for libgmp.

* doc/emacs/input.texi (Touchscreens): Document how to
horizontally scroll.
* java/org/gnu/emacs/EmacsActivity.java (attachWindow): Give the
view focus again if necessary.
(onPause): Call right super function.
* java/org/gnu/emacs/EmacsPreferencesActivity.java (onClick):
Clear dumpFileName lest Emacs try to load a nonexistent dump
file.
* java/org/gnu/emacs/EmacsView.java (onDetachedFromWindow)
(onAttachedToWindow): Call super functions.
(onCreateInputConnection): Make sure the IME never obscures
Emacs.
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, onKeyDown)
(onKeyUp): Improve tracking of quit keys.

* lisp/isearch.el (isearch-mode): Bring up the onscreen
keyboard.
* lisp/touch-screen.el (touch-screen-current-tool): Add three
fields.
(touch-screen-handle-scroll): Allow hscrolling as well.
(touch-screen-handle-touch): Add additional fields to
`touch-screen-current-tool'.
* src/Makefile.in (LIBGMP_CFLAGS, EMACS_CFLAGS): Add new
variable.
* src/android.c (android_run_select_thread):
(android_write_event): Use pthread_cond_broadcast because
pthread_cond_signal does nothing on some Android
versions/devices?
This commit is contained in:
Po Lu 2023-01-28 14:29:51 +08:00
parent 65dddd7c99
commit e3b50ec8ec
19 changed files with 243 additions and 46 deletions

View file

@ -124,9 +124,9 @@ public class EmacsWindow extends EmacsHandleObject
there is no such window manager. */
private WindowManager windowManager;
/* The time of the last KEYCODE_VOLUME_DOWN press. This is used to
quit Emacs. */
private long lastVolumeButtonPress;
/* The time of the last KEYCODE_VOLUME_DOWN release. This is used
to quit Emacs. */
private long lastVolumeButtonRelease;
public
EmacsWindow (short handle, final EmacsWindow parent, int x, int y,
@ -517,7 +517,6 @@ public class EmacsWindow extends EmacsHandleObject
onKeyDown (int keyCode, KeyEvent event)
{
int state, state_1;
long time;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
state = event.getModifiers ();
@ -549,26 +548,13 @@ public class EmacsWindow extends EmacsHandleObject
state, keyCode,
event.getUnicodeChar (state_1));
lastModifiers = state;
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
{
/* Check if this volume down press should quit Emacs.
Most Android devices have no physical keyboard, so it
is unreasonably hard to press C-g. */
time = event.getEventTime ();
if (lastVolumeButtonPress - time < 350)
EmacsNative.quit ();
lastVolumeButtonPress = time;
}
}
public void
onKeyUp (int keyCode, KeyEvent event)
{
int state, state_1;
long time;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
state = event.getModifiers ();
@ -600,6 +586,20 @@ public class EmacsWindow extends EmacsHandleObject
state, keyCode,
event.getUnicodeChar (state_1));
lastModifiers = state;
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
{
/* Check if this volume down press should quit Emacs.
Most Android devices have no physical keyboard, so it
is unreasonably hard to press C-g. */
time = event.getEventTime ();
if (time - lastVolumeButtonRelease < 350)
EmacsNative.quit ();
lastVolumeButtonRelease = time;
}
}
public void