diff options
| author | Po Lu <luangruo@yahoo.com> | 2023-10-05 14:23:20 +0800 |
|---|---|---|
| committer | Po Lu <luangruo@yahoo.com> | 2023-10-05 14:23:20 +0800 |
| commit | 123b77436e187c6254d4585d08135a44077528d1 (patch) | |
| tree | 5257a4dbb4d5dc5d1446a58cec224903494bbbb5 /java/org/gnu/emacs/EmacsInputConnection.java | |
| parent | 253f1aff1ab00e9794f3cfcf50e86e335f411242 (diff) | |
Introduce an input method callback required by Android 34
* java/org/gnu/emacs/EmacsInputConnection.java (replaceText):
New function.
* java/org/gnu/emacs/EmacsNative.java (replaceText): Declare
native function.
* src/androidgui.h (enum android_ime_operation): New operation
ANDROID_IME_REPLACE_TEXT.
* src/androidterm.c (android_handle_ime_event): Decode text when
encountering an ANDROID_IME_REPLACE_TEXT operation. Return if
decoding overflowed rather than presenting Qnil to textconv
functions.
(replaceText): New JNI function.
* src/frame.h (enum text_conversion_operation): New operation
TEXTCONV_REPLACE_TEXT.
* src/textconv.c (really_commit_text): Move point to start if
the composing region is set.
(really_replace_text): New function.
(handle_pending_conversion_events_1) <TEXTCONV_REPLACE_TEXT>:
New case.
(replace_text): New function.
* src/textconv.h: Update prototypes.
Diffstat (limited to 'java/org/gnu/emacs/EmacsInputConnection.java')
| -rw-r--r-- | java/org/gnu/emacs/EmacsInputConnection.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/java/org/gnu/emacs/EmacsInputConnection.java b/java/org/gnu/emacs/EmacsInputConnection.java index c3764a7b29f..7f6331205cb 100644 --- a/java/org/gnu/emacs/EmacsInputConnection.java +++ b/java/org/gnu/emacs/EmacsInputConnection.java @@ -628,6 +628,21 @@ public final class EmacsInputConnection implements InputConnection batchEditCount = 0; } + @Override + public boolean + replaceText (int start, int end, CharSequence text, + int newCursorPosition, TextAttribute attributes) + { + if (EmacsService.DEBUG_IC) + Log.d (TAG, ("replaceText: " + text + ":: " + start + "," + + end + "," + newCursorPosition)); + + EmacsNative.replaceText (windowHandle, start, end, + text.toString (), newCursorPosition, + attributes); + return true; + } + public void |
