From 9b917e79b1f06604b253548e24c0b8ab32a3a56d Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sat, 26 Aug 2023 23:44:41 +0200 Subject: [PATCH] Fix regression on Ctrl on space bar slider This makes Ctrl+move_cursor the same as before 5123ce5. --- srcs/juloo.keyboard2/KeyEventHandler.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/srcs/juloo.keyboard2/KeyEventHandler.java b/srcs/juloo.keyboard2/KeyEventHandler.java index c1f0a89..e903bdb 100644 --- a/srcs/juloo.keyboard2/KeyEventHandler.java +++ b/srcs/juloo.keyboard2/KeyEventHandler.java @@ -183,14 +183,20 @@ class KeyEventHandler implements Config.IKeyEventHandler } /** 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;