aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorPo Lu2023-03-10 19:13:22 +0800
committerPo Lu2023-03-10 19:13:22 +0800
commit1eb546309b24f41b124a0f94aee4009c6dbd8580 (patch)
tree5c972f9bdea469833e5a86643d1b28b739762cd0 /java
parent98d43dbef5786e02389e883ba5b4aaae7f261b79 (diff)
downloademacs-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.java4
-rw-r--r--java/org/gnu/emacs/EmacsView.java18
-rw-r--r--java/org/gnu/emacs/EmacsWindow.java5
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 }