on-screen keyboard
git clone https://git.lucas.co/cce-keyboard.git
fix: the arrow keys' fallback labels are words, not arrow characters
The arrow keys draw the arrow-* cce-icons glyphs; their names were "←"
"→" "↑" "↓", shown only when the icon set is missing — and then as
symbol characters in a fallback face. They are Left / Right / Up / Down.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
src/layout.rs | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/layout.rs b/src/layout.rs
index ca2d149..42a192f 100644
--- a/src/layout.rs
+++ b/src/layout.rs
@@ -191,7 +191,9 @@ pub fn all_codes(rows: &[Vec<KeyDef>]) -> Vec<u32> {
}
/// A key that is not a character: the name it wears, or the bundled
-/// cce-icons glyph standing in for it (with the name as the fallback).
+/// cce-icons glyph standing in for it (with the name as the fallback —
+/// always a word, never a symbol character, since the fallback only shows
+/// when the icon set is missing).
pub fn fixed_label(action: Action) -> Option<(&'static str, Option<&'static str>)> {
use code::*;
let named = |name| Some((name, None));
@@ -206,10 +208,10 @@ pub fn fixed_label(action: Action) -> Option<(&'static str, Option<&'static str>
TAB => named("Tab"),
ENTER => named("Enter"),
SPACE => named(""),
- LEFT => Some(("←", Some("arrow-left"))),
- RIGHT => Some(("→", Some("arrow-right"))),
- UP => Some(("↑", Some("arrow-up"))),
- DOWN => Some(("↓", Some("arrow-down"))),
+ LEFT => Some(("Left", Some("arrow-left"))),
+ RIGHT => Some(("Right", Some("arrow-right"))),
+ UP => Some(("Up", Some("arrow-up"))),
+ DOWN => Some(("Down", Some("arrow-down"))),
HOME => named("Home"),
END => named("End"),
PAGEUP => named("PgUp"),