diff options
| author | Po Lu | 2023-08-02 09:09:53 +0800 |
|---|---|---|
| committer | Po Lu | 2023-08-02 09:09:53 +0800 |
| commit | 8ff8a7fd5c50aaa7721a562a11836b4ec733ba5e (patch) | |
| tree | 2b13cd6fceba087acdcfbecd3530718a484e26d8 /java | |
| parent | f7052599877de9e855d743c68c88cc5729456f1f (diff) | |
| download | emacs-8ff8a7fd5c50aaa7721a562a11836b4ec733ba5e.tar.gz emacs-8ff8a7fd5c50aaa7721a562a11836b4ec733ba5e.zip | |
Fix reporting of key events containing SYM and META
* doc/emacs/android.texi (Android)::(What is Android?):
(Android Startup, Android File System, Android Environment)
(Android Windowing, Android Fonts, Android Troubleshooting):
Improve section titles.
(Android Windowing): Describe the relation between keyboard
modifiers reported by Android and those in key events.
* java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp):
Clear META_SYM_ON and META_META_MASK when retrieving ASCII
characters.
* src/androidgui.h: Add ANDROID_META_MASK.
* src/androidterm.c (android_android_to_emacs_modifiers)
(android_emacs_to_android_modifiers): Transform META to Alt, and
vice versa.
Diffstat (limited to 'java')
| -rw-r--r-- | java/org/gnu/emacs/EmacsWindow.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/java/org/gnu/emacs/EmacsWindow.java b/java/org/gnu/emacs/EmacsWindow.java index 8118479319e..a1f70644e16 100644 --- a/java/org/gnu/emacs/EmacsWindow.java +++ b/java/org/gnu/emacs/EmacsWindow.java | |||
| @@ -616,10 +616,13 @@ public final class EmacsWindow extends EmacsHandleObject | |||
| 616 | 616 | ||
| 617 | state = eventModifiers (event); | 617 | state = eventModifiers (event); |
| 618 | 618 | ||
| 619 | /* Ignore meta-state understood by Emacs for now, or Ctrl+C will | 619 | /* Ignore meta-state understood by Emacs for now, or key presses |
| 620 | not be recognized as an ASCII key press event. */ | 620 | such as Ctrl+C and Meta+C will not be recognized as an ASCII |
| 621 | key press event. */ | ||
| 622 | |||
| 621 | state_1 | 623 | state_1 |
| 622 | = state & ~(KeyEvent.META_ALT_MASK | KeyEvent.META_CTRL_MASK); | 624 | = state & ~(KeyEvent.META_ALT_MASK | KeyEvent.META_CTRL_MASK |
| 625 | | KeyEvent.META_SYM_ON | KeyEvent.META_META_MASK); | ||
| 623 | 626 | ||
| 624 | synchronized (eventStrings) | 627 | synchronized (eventStrings) |
| 625 | { | 628 | { |
| @@ -646,10 +649,13 @@ public final class EmacsWindow extends EmacsHandleObject | |||
| 646 | /* Compute the event's modifier mask. */ | 649 | /* Compute the event's modifier mask. */ |
| 647 | state = eventModifiers (event); | 650 | state = eventModifiers (event); |
| 648 | 651 | ||
| 649 | /* Ignore meta-state understood by Emacs for now, or Ctrl+C will | 652 | /* Ignore meta-state understood by Emacs for now, or key presses |
| 650 | not be recognized as an ASCII key press event. */ | 653 | such as Ctrl+C and Meta+C will not be recognized as an ASCII |
| 654 | key press event. */ | ||
| 655 | |||
| 651 | state_1 | 656 | state_1 |
| 652 | = state & ~(KeyEvent.META_ALT_MASK | KeyEvent.META_CTRL_MASK); | 657 | = state & ~(KeyEvent.META_ALT_MASK | KeyEvent.META_CTRL_MASK |
| 658 | | KeyEvent.META_SYM_ON | KeyEvent.META_META_MASK); | ||
| 653 | 659 | ||
| 654 | EmacsNative.sendKeyRelease (this.handle, | 660 | EmacsNative.sendKeyRelease (this.handle, |
| 655 | event.getEventTime (), | 661 | event.getEventTime (), |