summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsInputConnection.java
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-06-01 15:16:02 +0800
committerPo Lu <luangruo@yahoo.com>2023-06-01 15:16:02 +0800
commitaed0a11147e29fc73405f1815fef91ecf6cca7fb (patch)
tree35f335168eb4fe2c642a4c1a26109c71c3dacae6 /java/org/gnu/emacs/EmacsInputConnection.java
parent9a958c59a2ce546e6ec99c58ca181dafeac8dd6b (diff)
Update Android port
* java/org/gnu/emacs/EmacsInputConnection.java (EmacsInputConnection, performContextMenuAction): New function. * java/org/gnu/emacs/EmacsNative.java (EmacsNative) (performContextMenuAction): New function. * src/android.c (android_get_gc_values): Implement more efficiently. * src/androidterm.c (android_handle_ime_event): Pass through `update' argument to `finish_composing_text'. Fix thinko. * src/textconv.c (really_finish_composing_text) (really_set_composing_text, really_set_composing_region) (handle_pending_conversion_events_1, finish_composing_text): New argument `update'. Notify IME of conversion region changes if set. * src/textconv.h: Update structs and prototypes.
Diffstat (limited to 'java/org/gnu/emacs/EmacsInputConnection.java')
-rw-r--r--java/org/gnu/emacs/EmacsInputConnection.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/java/org/gnu/emacs/EmacsInputConnection.java b/java/org/gnu/emacs/EmacsInputConnection.java
index 54c98d950aa..eb6fd5f2763 100644
--- a/java/org/gnu/emacs/EmacsInputConnection.java
+++ b/java/org/gnu/emacs/EmacsInputConnection.java
@@ -257,6 +257,52 @@ public final class EmacsInputConnection extends BaseInputConnection
}
@Override
+ public boolean
+ performContextMenuAction (int contextMenuAction)
+ {
+ int action;
+
+ if (EmacsService.DEBUG_IC)
+ Log.d (TAG, "performContextMenuAction: " + contextMenuAction);
+
+ /* Translate the action in Java code. That way, a great deal of
+ JNI boilerplate can be avoided. */
+
+ switch (contextMenuAction)
+ {
+ case android.R.id.selectAll:
+ action = 0;
+ break;
+
+ case android.R.id.startSelectingText:
+ action = 1;
+ break;
+
+ case android.R.id.stopSelectingText:
+ action = 2;
+ break;
+
+ case android.R.id.cut:
+ action = 3;
+ break;
+
+ case android.R.id.copy:
+ action = 4;
+ break;
+
+ case android.R.id.paste:
+ action = 5;
+ break;
+
+ default:
+ return true;
+ }
+
+ EmacsNative.performContextMenuAction (windowHandle, action);
+ return true;
+ }
+
+ @Override
public ExtractedText
getExtractedText (ExtractedTextRequest request, int flags)
{