diff --git a/srcs/juloo.keyboard2/KeyEventHandler.java b/srcs/juloo.keyboard2/KeyEventHandler.java index c1f0a8909..e903bdb82 100644 --- a/srcs/juloo.keyboard2/KeyEventHandler.java +++ b/srcs/juloo.keyboard2/KeyEventHandler.java @@ -183,14 +183,20 @@ ExtractedText get_cursor_pos(InputConnection conn) } /** Move the cursor right or left, if possible without sending key events. - Unlike arrow keys, the selection is not removed even if shift is not on. */ + Unlike arrow keys, the selection is not removed even if shift is not on. + Falls back to sending arrow keys events if the editor do not support + moving the cursor or a modifier other than shift is pressed. */ void move_cursor(int d, Pointers.Modifiers mods) { InputConnection conn = _recv.getCurrentInputConnection(); if (conn == null) return; ExtractedText et = get_cursor_pos(conn); - if (et == null) // Editor doesn't support moving the cursor + // Fallback to sending key events + if (et == null + || mods.has(KeyValue.Modifier.CTRL) + || mods.has(KeyValue.Modifier.ALT) + || mods.has(KeyValue.Modifier.META)) { move_cursor_fallback(d, mods); return;