diff options
Diffstat (limited to 'srcs/juloo.keyboard2/KeyModifier.java')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyModifier.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index b4de76b..f6ffa75 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -64,6 +64,7 @@ class KeyModifier return maybe_modify_char(k, map_char_box(k.char_)); case KeyValue.MOD_SLASH: return maybe_modify_char(k, map_char_slash(k.char_)); + case KeyValue.MOD_ARROW_RIGHT: return apply_combining(k, "\u20D7"); default: return k; } } @@ -76,11 +77,24 @@ class KeyModifier return maybe_modify_char(k, c); } + private static KeyValue apply_combining(KeyValue k, String combining) + { + if (k.char_ == KeyValue.CHAR_NONE) + return k; + return KeyValue.getKeyByName(String.valueOf(k.char_) + combining); + } + private static KeyValue apply_shift(KeyValue k) { char c = k.char_; if (c == KeyValue.CHAR_NONE) - return k; + { + // The key is a string + if (k.code == KeyValue.EVENT_NONE) + return k.withCharAndSymbol(k.symbol.toUpperCase(), KeyValue.CHAR_NONE); + else + return k; + } c = map_char_shift(c); if (c == k.char_) c = Character.toUpperCase(c); |
