mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-14 15:16:40 +00:00
fix(sim): real text-size scaling + correct joystick-board menu hint
Two more real-vs-sim mismatches, found after seeing the rendered UI: 1. The Clock screen's big time display (setTextSize(2)) rendered at size 1 -- SimDisplayDriverCanvas ignored setTextSize() entirely (a leftover no-op from the old system-font renderer) and never overrode getCharWidth()/getLineHeight(), so the big-digit layout math in UITask.cpp's drawBig() came out wrong even once print() itself gained real font support. Track _text_sz, scale both metrics by it (matching SSD1306Display's own getCharWidth()==6*_text_sz pattern), and pass it through to miscFixedPrint() in target.cpp instead of a hardcoded 1. 2. The Home carousel's "<PRESS_LABEL> to open" hint said "long press to open" -- true only for touchscreen-only boards with no dedicated Enter button (PRESS_LABEL's #if UI_HAS_JOYSTICK / #else split in examples/companion_radio/ui-new/UITask.cpp). The sim's D-pad + OK key behaves like a joystick board (a SHORT Enter press opens each page; holding it separately reaches the real context menu via handleLongPress()), so showing the touchscreen wording was both inaccurate and different from what a real joystick board like Heltec V3 displays. Added SIM_PLATFORM to that #if alongside UI_HAS_JOYSTICK -- UI_HAS_JOYSTICK itself stays unset, since its other two gates (begin()-ing/polling real joystick MomentaryButton objects) need hardware the sim's target.cpp doesn't declare. Verified in real Chromium: Clock screen shows "08:11:10" at real double size above the normal-size date line; Home carousel now says "press Enter to open". Full regression clean: 3 native envs, wasm companion_radio, the 2-instance+repeater mesh demo, and the long-press context-menu test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,14 @@
|
||||
#define UI_RECENT_LIST_SIZE 4
|
||||
#endif
|
||||
|
||||
#if UI_HAS_JOYSTICK
|
||||
// The sim's D-pad + dedicated OK/Enter key behaves like a joystick board
|
||||
// (a short Enter press opens Settings/Tools/Messages -- see the
|
||||
// KEY_ENTER && _page==... handlers below; holding it separately reaches
|
||||
// KEY_CONTEXT_MENU via handleLongPress(), same as a real joystick board's
|
||||
// long-press) -- without SIM_PLATFORM here, this would fall to the
|
||||
// touchscreen-board wording below, which describes a different, and for
|
||||
// this input method simply wrong, interaction.
|
||||
#if UI_HAS_JOYSTICK || defined(SIM_PLATFORM)
|
||||
#define PRESS_LABEL "press Enter"
|
||||
#else
|
||||
#define PRESS_LABEL "long press"
|
||||
|
||||
Reference in New Issue
Block a user