diff options
| author | Jules Aguillon | 2024-03-18 00:14:19 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2024-03-18 00:40:15 +0100 |
| commit | dc3a303af1ef72602b58292e5cc938944d6954ba (patch) | |
| tree | 7bfdb51a267d684bd57fcf3b21f917cff3aa3536 /srcs/juloo.keyboard2/KeyEventHandler.java | |
| parent | ec8e78d5cc8a7d3c4d1929761bd80806b1d5e7c8 (diff) | |
| download | unexpected-keyboard-dc3a303af1ef72602b58292e5cc938944d6954ba.tar.gz unexpected-keyboard-dc3a303af1ef72602b58292e5cc938944d6954ba.zip | |
refactor: Allow modifier of other key kinds
Allow keys of a kind other than Modifier to be a modifier.
This requires writing a compareTo function for KeyValue. Fields are
compared in this order: Kind, value, flags, symbol.
Diffstat (limited to 'srcs/juloo.keyboard2/KeyEventHandler.java')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyEventHandler.java | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/srcs/juloo.keyboard2/KeyEventHandler.java b/srcs/juloo.keyboard2/KeyEventHandler.java index de9fe8c..a7f9ecb 100644 --- a/srcs/juloo.keyboard2/KeyEventHandler.java +++ b/srcs/juloo.keyboard2/KeyEventHandler.java @@ -113,7 +113,7 @@ public final class KeyEventHandler implements Config.IKeyEventHandler void update_meta_state(Pointers.Modifiers mods) { // Released modifiers - Iterator<KeyValue.Modifier> it = _mods.diff(mods); + Iterator<KeyValue> it = _mods.diff(mods); while (it.hasNext()) sendMetaKeyForModifier(it.next(), false); // Activated modifiers @@ -147,23 +147,28 @@ public final class KeyEventHandler implements Config.IKeyEventHandler } } - void sendMetaKeyForModifier(KeyValue.Modifier mod, boolean down) + void sendMetaKeyForModifier(KeyValue kv, boolean down) { - switch (mod) + switch (kv.getKind()) { - case CTRL: - sendMetaKey(KeyEvent.KEYCODE_CTRL_LEFT, KeyEvent.META_CTRL_LEFT_ON | KeyEvent.META_CTRL_ON, down); - break; - case ALT: - sendMetaKey(KeyEvent.KEYCODE_ALT_LEFT, KeyEvent.META_ALT_LEFT_ON | KeyEvent.META_ALT_ON, down); - break; - case SHIFT: - sendMetaKey(KeyEvent.KEYCODE_SHIFT_LEFT, KeyEvent.META_SHIFT_LEFT_ON | KeyEvent.META_SHIFT_ON, down); - break; - case META: - sendMetaKey(KeyEvent.KEYCODE_META_LEFT, KeyEvent.META_META_LEFT_ON | KeyEvent.META_META_ON, down); - break; - default: + case Modifier: + switch (kv.getModifier()) + { + case CTRL: + sendMetaKey(KeyEvent.KEYCODE_CTRL_LEFT, KeyEvent.META_CTRL_LEFT_ON | KeyEvent.META_CTRL_ON, down); + break; + case ALT: + sendMetaKey(KeyEvent.KEYCODE_ALT_LEFT, KeyEvent.META_ALT_LEFT_ON | KeyEvent.META_ALT_ON, down); + break; + case SHIFT: + sendMetaKey(KeyEvent.KEYCODE_SHIFT_LEFT, KeyEvent.META_SHIFT_LEFT_ON | KeyEvent.META_SHIFT_ON, down); + break; + case META: + sendMetaKey(KeyEvent.KEYCODE_META_LEFT, KeyEvent.META_META_LEFT_ON | KeyEvent.META_META_ON, down); + break; + default: + break; + } break; } } |
