diff options
| author | Jules Aguillon | 2025-02-22 11:41:13 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2025-03-01 16:52:46 +0100 |
| commit | 80c52460c70d16e7d1f79dd45190747051e764a1 (patch) | |
| tree | 19d77e25b5cb71fefe042855fa43c647cb38dceb /srcs/juloo.keyboard2 | |
| parent | 2b978dd2e00af6cc3a3efb218cc33fdbdd2318cc (diff) | |
| download | unexpected-keyboard-80c52460c70d16e7d1f79dd45190747051e764a1.tar.gz unexpected-keyboard-80c52460c70d16e7d1f79dd45190747051e764a1.zip | |
Add 'delete_word' and 'forward_delete_word' keys
These keys are the equivalent of ctrl+backspace and ctrl+delete,
respectively.
They can be reached with Gesture+backspace and Gesture+delete
respectively.
Diffstat (limited to 'srcs/juloo.keyboard2')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyEventHandler.java | 25 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/KeyModifier.java | 7 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/KeyValue.java | 4 |
3 files changed, 26 insertions, 10 deletions
diff --git a/srcs/juloo.keyboard2/KeyEventHandler.java b/srcs/juloo.keyboard2/KeyEventHandler.java index 09efd59..a841c30 100644 --- a/srcs/juloo.keyboard2/KeyEventHandler.java +++ b/srcs/juloo.keyboard2/KeyEventHandler.java @@ -146,11 +146,11 @@ public final class KeyEventHandler if (down) { _meta_state = _meta_state | meta_flags; - send_keyevent(KeyEvent.ACTION_DOWN, eventCode); + send_keyevent(KeyEvent.ACTION_DOWN, eventCode, _meta_state); } else { - send_keyevent(KeyEvent.ACTION_UP, eventCode); + send_keyevent(KeyEvent.ACTION_UP, eventCode, _meta_state); _meta_state = _meta_state & ~meta_flags; } } @@ -181,25 +181,28 @@ public final class KeyEventHandler } } - /* - * Don't set KeyEvent.FLAG_SOFT_KEYBOARD. - */ void send_key_down_up(int keyCode) { - send_keyevent(KeyEvent.ACTION_DOWN, keyCode); - send_keyevent(KeyEvent.ACTION_UP, keyCode); + send_key_down_up(keyCode, _meta_state); } - void send_keyevent(int eventAction, int eventCode) + /** Ignores currently pressed system modifiers. */ + void send_key_down_up(int keyCode, int metaState) + { + send_keyevent(KeyEvent.ACTION_DOWN, keyCode, metaState); + send_keyevent(KeyEvent.ACTION_UP, keyCode, metaState); + } + + void send_keyevent(int eventAction, int eventCode, int metaState) { InputConnection conn = _recv.getCurrentInputConnection(); if (conn == null) return; conn.sendKeyEvent(new KeyEvent(1, 1, eventAction, eventCode, 0, - _meta_state, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, + metaState, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE)); if (eventAction == KeyEvent.ACTION_UP) - _autocap.event_sent(eventCode, _meta_state); + _autocap.event_sent(eventCode, metaState); } void send_text(CharSequence text) @@ -236,6 +239,8 @@ public final class KeyEventHandler case REPLACE: send_context_menu_action(android.R.id.replaceText); break; case ASSIST: send_context_menu_action(android.R.id.textAssist); break; case AUTOFILL: send_context_menu_action(android.R.id.autofill); break; + case DELETE_WORD: send_key_down_up(KeyEvent.KEYCODE_DEL, KeyEvent.META_CTRL_ON | KeyEvent.META_CTRL_LEFT_ON); break; + case FORWARD_DELETE_WORD: send_key_down_up(KeyEvent.KEYCODE_FORWARD_DEL, KeyEvent.META_CTRL_ON | KeyEvent.META_CTRL_LEFT_ON); break; } } diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index c9de407..bb33cca 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -381,6 +381,13 @@ public final class KeyModifier case SHIFT: name = "capslock"; break; } break; + case Keyevent: + switch (k.getKeyevent()) + { + case KeyEvent.KEYCODE_DEL: name = "delete_word"; break; + case KeyEvent.KEYCODE_FORWARD_DEL: name = "forward_delete_word"; break; + } + break; } return (name == null) ? k : KeyValue.getKeyByName(name); } diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 2c5a03b..413520d 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -75,6 +75,8 @@ public final class KeyValue implements Comparable<KeyValue> SHARE, ASSIST, AUTOFILL, + DELETE_WORD, + FORWARD_DELETE_WORD, } public static enum Placeholder @@ -707,6 +709,8 @@ public final class KeyValue implements Comparable<KeyValue> case "pasteAsPlainText": return editingKey(0xE035, Editing.PASTE_PLAIN); case "undo": return editingKey(0xE036, Editing.UNDO); case "redo": return editingKey(0xE037, Editing.REDO); + case "delete_word": return editingKey(0xE01B, Editing.DELETE_WORD); + case "forward_delete_word": return editingKey(0xE01C, Editing.FORWARD_DELETE_WORD); case "cursor_left": return sliderKey(Slider.Cursor_left, 1); case "cursor_right": return sliderKey(Slider.Cursor_right, 1); case "cursor_up": return sliderKey(Slider.Cursor_up, 1); |
