[Android] U+25BE Geometric Shapes glyph in HUD labels — renders as missing-glyph rectangle #18

Closed
opened 2026-05-19 18:43:04 +00:00 by funman300 · 0 comments
Owner

File

solitaire_engine/src/hud_plugin.rs lines 874, 877

Description

The HUD label array contains:

"Menu \u{25BE}",   // U+25BE BLACK DOWN-POINTING SMALL TRIANGLE
"Modes \u{25BE}",

U+25BE is in the Unicode Geometric Shapes block (U+25A0–U+25FF). CLAUDE.md §10 and §11 explicitly forbid these glyphs because FiraMono does not cover them — they render as missing-glyph rectangles on Android.

While the specific label assignment targets the desktop path, the #[cfg] guard on the labels tuple must be verified to ensure this literal never reaches Android.

Fix

Replace U+25BE with a FiraMono-safe alternative (e.g. v, or use a dedicated icon sprite), or add a compile-time #[cfg(not(target_os = "android"))] guard verified by CI.

## File `solitaire_engine/src/hud_plugin.rs` lines 874, 877 ## Description The HUD label array contains: ```rust "Menu \u{25BE}", // U+25BE BLACK DOWN-POINTING SMALL TRIANGLE "Modes \u{25BE}", ``` `U+25BE` is in the Unicode Geometric Shapes block (U+25A0–U+25FF). CLAUDE.md §10 and §11 explicitly forbid these glyphs because FiraMono does not cover them — they render as missing-glyph rectangles on Android. While the specific label assignment targets the desktop path, the `#[cfg]` guard on the labels tuple must be verified to ensure this literal never reaches Android. ## Fix Replace U+25BE with a FiraMono-safe alternative (e.g. `▾` → `v`, or use a dedicated icon sprite), or add a compile-time `#[cfg(not(target_os = "android"))]` guard verified by CI.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: funman300/Ferrous-Solitaire#18