diff options
Diffstat (limited to 'srcs/juloo.keyboard2/KeyModifier.java')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyModifier.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index 51e7051..94f096b 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -10,6 +10,10 @@ public final class KeyModifier private static HashMap<KeyValue, HashMap<Pointers.Modifiers, KeyValue>> _cache = new HashMap<KeyValue, HashMap<Pointers.Modifiers, KeyValue>>(); + /** The current compose state. Whether a compose is pending is signaled by + the [COMPOSE_PENDING] modifier. */ + static int _compose_pending = -1; + /** Modify a key according to modifiers. */ public static KeyValue modify(KeyValue k, Pointers.Modifiers mods) { @@ -27,7 +31,11 @@ public final class KeyModifier ks.put(mods, r); } /* Keys with an empty string are placeholder keys. */ - return (r.getString().length() == 0) ? null : r; + if (r.getString().length() == 0) + return null; + if (mods.has(KeyValue.Modifier.COMPOSE_PENDING)) + r = ComposeKey.apply(_compose_pending, r); + return r; } public static KeyValue modify(KeyValue k, KeyValue.Modifier mod) @@ -99,6 +107,11 @@ public final class KeyModifier } } + public static void set_compose_pending(int state) + { + _compose_pending = state; + } + private static KeyValue apply_map_char(KeyValue k, Map_char map) { switch (k.getKind()) |
