1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-18 17:01:01 -08:00

Additional changes to processing of Num Lock on Android

* java/org/gnu/emacs/EmacsView.java (onKeyDown, onKeyMultiple)
(onKeyDown): Disregard Num and Scroll Lock keys, and return
value of window functions to the system.

* java/org/gnu/emacs/EmacsWindow.java (eventModifiers): Return
normalized meta state, not only those bits the system considers
modifiers.
(onKeyDown, onKeyUp): Ignore numpad keys to which no base
characters are assigned, so that the system may generate the
proper action keys instead.
This commit is contained in:
Po Lu 2024-05-12 15:46:38 +08:00
parent af6df8e045
commit ea98a6af2f
2 changed files with 57 additions and 31 deletions

View file

@ -505,42 +505,45 @@ public final class EmacsView extends ViewGroup
public boolean
onKeyDown (int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)
&& !EmacsNative.shouldForwardMultimediaButtons ())
return false;
if (((keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)
&& !EmacsNative.shouldForwardMultimediaButtons ())
|| keyCode == KeyEvent.KEYCODE_SCROLL_LOCK
|| keyCode == KeyEvent.KEYCODE_NUM_LOCK)
return super.onKeyDown (keyCode, event);
window.onKeyDown (keyCode, event);
return true;
return window.onKeyDown (keyCode, event);
}
@Override
public boolean
onKeyMultiple (int keyCode, int repeatCount, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)
&& !EmacsNative.shouldForwardMultimediaButtons ())
return false;
if (((keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)
&& !EmacsNative.shouldForwardMultimediaButtons ())
|| keyCode == KeyEvent.KEYCODE_SCROLL_LOCK
|| keyCode == KeyEvent.KEYCODE_NUM_LOCK)
return super.onKeyMultiple (keyCode, repeatCount, event);
window.onKeyDown (keyCode, event);
return true;
return window.onKeyDown (keyCode, event);
}
@Override
public boolean
onKeyUp (int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)
&& !EmacsNative.shouldForwardMultimediaButtons ())
return false;
if (((keyCode == KeyEvent.KEYCODE_VOLUME_UP
|| keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
|| keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)
&& !EmacsNative.shouldForwardMultimediaButtons ())
|| keyCode == KeyEvent.KEYCODE_SCROLL_LOCK
|| keyCode == KeyEvent.KEYCODE_NUM_LOCK)
return super.onKeyUp (keyCode, event);
window.onKeyUp (keyCode, event);
return true;
return window.onKeyUp (keyCode, event);
}
@Override