abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2
diff options
context:
space:
mode:
authorJules Aguillon2025-02-22 11:41:13 +0100
committerJules Aguillon2025-03-01 16:52:46 +0100
commit80c52460c70d16e7d1f79dd45190747051e764a1 (patch)
tree19d77e25b5cb71fefe042855fa43c647cb38dceb /srcs/juloo.keyboard2
parent2b978dd2e00af6cc3a3efb218cc33fdbdd2318cc (diff)
downloadunexpected-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.java25
-rw-r--r--srcs/juloo.keyboard2/KeyModifier.java7
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java4
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);