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 | |
| 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')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyModifier.java | 16 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/KeyValue.java | 2 |
2 files changed, 17 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); diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index fc5cff4..c3678f9 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -45,6 +45,7 @@ class KeyValue public static final int MOD_BOX = -215; public static final int MOD_OGONEK = -216; public static final int MOD_SLASH = -217; + public static final int MOD_ARROW_RIGHT = -218; /** Special value for the [char_] field. */ public static final char CHAR_NONE = '\0'; @@ -188,6 +189,7 @@ class KeyValue addModifierKey("accent_double_aigu", "\u005b", MOD_DOUBLE_AIGU, FLAG_KEY_FONT); addModifierKey("accent_slash", "\134", // Can't write u005c MOD_SLASH, FLAG_KEY_FONT); + addModifierKey("accent_arrow_right", "\u005d", MOD_ARROW_RIGHT, FLAG_KEY_FONT); addModifierKey("superscript", "Sup", MOD_SUPERSCRIPT, FLAG_SMALLER_FONT); addModifierKey("subscript", "Sub", MOD_SUBSCRIPT, FLAG_SMALLER_FONT); addModifierKey("ordinal", "Ord", MOD_ORDINAL, FLAG_SMALLER_FONT); |
