diff options
| author | Po Lu | 2023-03-10 19:13:22 +0800 |
|---|---|---|
| committer | Po Lu | 2023-03-10 19:13:22 +0800 |
| commit | 1eb546309b24f41b124a0f94aee4009c6dbd8580 (patch) | |
| tree | 5c972f9bdea469833e5a86643d1b28b739762cd0 /java | |
| parent | 98d43dbef5786e02389e883ba5b4aaae7f261b79 (diff) | |
| download | emacs-1eb546309b24f41b124a0f94aee4009c6dbd8580.tar.gz emacs-1eb546309b24f41b124a0f94aee4009c6dbd8580.zip | |
Update Android port
* doc/emacs/android.texi (Android Windowing): Document how to
pass multimedia keys to the system.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function.
* java/org/gnu/emacs/EmacsView.java (onKeyDown, onKeyMultiple)
(onKeyUp): Check that function.
* java/org/gnu/emacs/EmacsWindow.java (defineCursor): Handle
cases where cursor is NULL.
* src/android.c (NATIVE_NAME): New function.
* src/androidfns.c (syms_of_androidfns): New variable.
* src/keyboard.c (lispy_function_keys): Add volume keys.
Diffstat (limited to 'java')
| -rw-r--r-- | java/org/gnu/emacs/EmacsNative.java | 4 | ||||
| -rw-r--r-- | java/org/gnu/emacs/EmacsView.java | 18 | ||||
| -rw-r--r-- | java/org/gnu/emacs/EmacsWindow.java | 5 |
3 files changed, 26 insertions, 1 deletions
diff --git a/java/org/gnu/emacs/EmacsNative.java b/java/org/gnu/emacs/EmacsNative.java index d96c93a83a1..7d13ff99abb 100644 --- a/java/org/gnu/emacs/EmacsNative.java +++ b/java/org/gnu/emacs/EmacsNative.java | |||
| @@ -174,6 +174,10 @@ public final class EmacsNative | |||
| 174 | main thread's looper to respond. */ | 174 | main thread's looper to respond. */ |
| 175 | public static native void endSynchronous (); | 175 | public static native void endSynchronous (); |
| 176 | 176 | ||
| 177 | /* Return whether or not KEYCODE_VOLUME_DOWN, KEYCODE_VOLUME_UP and | ||
| 178 | KEYCODE_VOLUME_MUTE should be forwarded to Emacs. */ | ||
| 179 | public static native boolean shouldForwardMultimediaButtons (); | ||
| 180 | |||
| 177 | 181 | ||
| 178 | 182 | ||
| 179 | /* Input connection functions. These mostly correspond to their | 183 | /* Input connection functions. These mostly correspond to their |
diff --git a/java/org/gnu/emacs/EmacsView.java b/java/org/gnu/emacs/EmacsView.java index 6ace609f386..878ef2f3fbf 100644 --- a/java/org/gnu/emacs/EmacsView.java +++ b/java/org/gnu/emacs/EmacsView.java | |||
| @@ -361,6 +361,12 @@ public final class EmacsView extends ViewGroup | |||
| 361 | public boolean | 361 | public boolean |
| 362 | onKeyDown (int keyCode, KeyEvent event) | 362 | onKeyDown (int keyCode, KeyEvent event) |
| 363 | { | 363 | { |
| 364 | if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP | ||
| 365 | || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN | ||
| 366 | || keyCode == KeyEvent.KEYCODE_VOLUME_MUTE) | ||
| 367 | && !EmacsNative.shouldForwardMultimediaButtons ()) | ||
| 368 | return false; | ||
| 369 | |||
| 364 | window.onKeyDown (keyCode, event); | 370 | window.onKeyDown (keyCode, event); |
| 365 | return true; | 371 | return true; |
| 366 | } | 372 | } |
| @@ -369,6 +375,12 @@ public final class EmacsView extends ViewGroup | |||
| 369 | public boolean | 375 | public boolean |
| 370 | onKeyMultiple (int keyCode, int repeatCount, KeyEvent event) | 376 | onKeyMultiple (int keyCode, int repeatCount, KeyEvent event) |
| 371 | { | 377 | { |
| 378 | if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP | ||
| 379 | || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN | ||
| 380 | || keyCode == KeyEvent.KEYCODE_VOLUME_MUTE) | ||
| 381 | && !EmacsNative.shouldForwardMultimediaButtons ()) | ||
| 382 | return false; | ||
| 383 | |||
| 372 | window.onKeyDown (keyCode, event); | 384 | window.onKeyDown (keyCode, event); |
| 373 | return true; | 385 | return true; |
| 374 | } | 386 | } |
| @@ -377,6 +389,12 @@ public final class EmacsView extends ViewGroup | |||
| 377 | public boolean | 389 | public boolean |
| 378 | onKeyUp (int keyCode, KeyEvent event) | 390 | onKeyUp (int keyCode, KeyEvent event) |
| 379 | { | 391 | { |
| 392 | if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP | ||
| 393 | || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN | ||
| 394 | || keyCode == KeyEvent.KEYCODE_VOLUME_MUTE) | ||
| 395 | && !EmacsNative.shouldForwardMultimediaButtons ()) | ||
| 396 | return false; | ||
| 397 | |||
| 380 | window.onKeyUp (keyCode, event); | 398 | window.onKeyUp (keyCode, event); |
| 381 | return true; | 399 | return true; |
| 382 | } | 400 | } |
diff --git a/java/org/gnu/emacs/EmacsWindow.java b/java/org/gnu/emacs/EmacsWindow.java index 6be609edcfe..d786c104153 100644 --- a/java/org/gnu/emacs/EmacsWindow.java +++ b/java/org/gnu/emacs/EmacsWindow.java | |||
| @@ -1234,7 +1234,10 @@ public final class EmacsWindow extends EmacsHandleObject | |||
| 1234 | public void | 1234 | public void |
| 1235 | run () | 1235 | run () |
| 1236 | { | 1236 | { |
| 1237 | view.setPointerIcon (cursor.icon); | 1237 | if (cursor != null) |
| 1238 | view.setPointerIcon (cursor.icon); | ||
| 1239 | else | ||
| 1240 | view.setPointerIcon (null); | ||
| 1238 | } | 1241 | } |
| 1239 | }); | 1242 | }); |
| 1240 | } | 1243 | } |