diff options
Diffstat (limited to 'srcs/juloo.keyboard2/KeyModifier.java')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyModifier.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index 70f7315..a5fcde2 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -10,6 +10,11 @@ public final class KeyModifier private static HashMap<KeyValue, HashMap<Pointers.Modifiers, KeyValue>> _cache = new HashMap<KeyValue, HashMap<Pointers.Modifiers, KeyValue>>(); + /** The optional modmap takes priority over modifiers usual behaviors. Set to + [null] to disable. */ + private static KeyboardData.Modmap _modmap = null; + public static void set_modmap(KeyboardData.Modmap mm) { _modmap = mm; } + /** Modify a key according to modifiers. */ public static KeyValue modify(KeyValue k, Pointers.Modifiers mods) { @@ -130,6 +135,12 @@ public final class KeyModifier private static KeyValue apply_shift(KeyValue k) { + if (_modmap != null) + { + KeyValue mapped = _modmap.shift.get(k); + if (mapped != null) + return mapped; + } switch (k.getKind()) { case Char: |
