abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2
diff options
context:
space:
mode:
authorJules Aguillon2022-06-05 13:51:09 +0200
committerJules Aguillon2022-06-05 13:51:09 +0200
commit02124dd71ffc42bde9b2b333b87a9d3b6f67043c (patch)
tree808d37fbfe118bcac4a80397b81d3501c5c62991 /srcs/juloo.keyboard2
parente4e54628b7bc5f275e5c719eac7bb21e8c43149b (diff)
downloadunexpected-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.java16
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java2
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);