abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2023-09-09 14:32:03 +0200
committerJules Aguillon2023-09-09 14:32:03 +0200
commit44e2e86f19bd9e7acddad50506dad0737fa032d9 (patch)
treebca7fd0aeea1f49316e0f5326b3b2673bdf48509
parent92a8db5e9374082000f9c79becd09661bea84dd9 (diff)
downloadunexpected-keyboard-44e2e86f19bd9e7acddad50506dad0737fa032d9.tar.gz
unexpected-keyboard-44e2e86f19bd9e7acddad50506dad0737fa032d9.zip
Capitalize the first letter of custom keys
This is more useful than turning the entire string full caps.
-rw-r--r--srcs/juloo.keyboard2/KeyModifier.java3
-rw-r--r--srcs/juloo.keyboard2/StringUtils.java12
2 files changed, 14 insertions, 1 deletions
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);
+ }
+}