diff options
| author | Jules Aguillon | 2022-06-05 13:51:09 +0200 |
|---|---|---|
| committer | Jules Aguillon | 2022-06-05 13:51:09 +0200 |
| commit | 02124dd71ffc42bde9b2b333b87a9d3b6f67043c (patch) | |
| tree | 808d37fbfe118bcac4a80397b81d3501c5c62991 /srcs/juloo.keyboard2/KeyModifier.java | |
| parent | e4e54628b7bc5f275e5c719eac7bb21e8c43149b (diff) | |
| download | unexpected-keyboard-02124dd71ffc42bde9b2b333b87a9d3b6f67043c.tar.gz unexpected-keyboard-02124dd71ffc42bde9b2b333b87a9d3b6f67043c.zip | |
Add combining 'accent_arrow_right'
It's the first modifier that uses combining diacritics. Whether it
should be represented as a modifier or a new kind of key can be
reconsidered later.
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); |
