abouttreesummaryrefslogcommitdiff
path: root/srcs
diff options
context:
space:
mode:
Diffstat (limited to 'srcs')
-rw-r--r--srcs/juloo.keyboard2/KeyEventHandler.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/srcs/juloo.keyboard2/KeyEventHandler.java b/srcs/juloo.keyboard2/KeyEventHandler.java
index 3c95f3d..33089d9 100644
--- a/srcs/juloo.keyboard2/KeyEventHandler.java
+++ b/srcs/juloo.keyboard2/KeyEventHandler.java
@@ -41,12 +41,7 @@ public final class KeyEventHandler
public void started(EditorInfo info)
{
_autocap.started(info, _recv.getCurrentInputConnection());
- // Workaround a bug in Acode, which answers to [getExtractedText] but do
- // not react to [setSelection] while returning [true].
- // Note: Using & to workaround a bug in Acode, which sets several
- // variations at once.
- _move_cursor_force_fallback = (info.inputType & InputType.TYPE_MASK_VARIATION &
- InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0;
+ _move_cursor_force_fallback = should_move_cursor_force_fallback(info);
}
/** Selection has been updated. */
@@ -473,6 +468,17 @@ public final class KeyEventHandler
return (conn.getSelectedText(0) != null);
}
+ /** Workaround some apps which answers to [getExtractedText] but do not react
+ to [setSelection] while returning [true]. */
+ boolean should_move_cursor_force_fallback(EditorInfo info)
+ {
+ // This catch Acode: which sets several variations at once.
+ if ((info.inputType & InputType.TYPE_MASK_VARIATION & InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0)
+ return true;
+ // Godot editor: Doesn't handle setSelection() but returns true.
+ return info.packageName.startsWith("org.godotengine.editor");
+ }
+
public static interface IReceiver
{
public void handle_event_key(KeyValue.Event ev);