diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index 32ee570..6d0792f 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -122,7 +122,8 @@ class KeyModifier c = Character.toUpperCase(kc); return (kc == c) ? k : k.withChar(c); case String: - return KeyValue.makeStringKey(k.getString().toUpperCase(), k.getFlags()); + String s = Utils.capitalize_string(k.getString()); + return KeyValue.makeStringKey(s, k.getFlags()); default: return k; } } diff --git a/srcs/juloo.keyboard2/StringUtils.java b/srcs/juloo.keyboard2/StringUtils.java new file mode 100644 index 0000000..2994509 --- /dev/null +++ b/srcs/juloo.keyboard2/StringUtils.java @@ -0,0 +1,12 @@ +package juloo.keyboard2; + +final class Utils +{ + /** Turn the first letter of a string uppercase. */ + public static String capitalize_string(String s) + { + // Make sure not to cut a code point in half + int i = s.offsetByCodePoints(0, 1); + return s.substring(0, i).toUpperCase() + s.substring(i); + } +}