abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/KeyEventHandler.java
diff options
context:
space:
mode:
authorJules Aguillon2024-03-18 00:14:19 +0100
committerJules Aguillon2024-03-18 00:40:15 +0100
commitdc3a303af1ef72602b58292e5cc938944d6954ba (patch)
tree7bfdb51a267d684bd57fcf3b21f917cff3aa3536 /srcs/juloo.keyboard2/KeyEventHandler.java
parentec8e78d5cc8a7d3c4d1929761bd80806b1d5e7c8 (diff)
downloadunexpected-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.java37
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;
}
}