fix(ui): partial-refresh time-set digit blink instead of full screen

UI_ShowSetTimePage() cleared and redrew the entire screen on every
500ms blink toggle and on every up/down value change, causing a
full-screen flash instead of just the intended hour/minute digit
blinking. Split out UI_UpdateSetTimeDigit() which only repaints the
32x32px digit region for the field being edited; the full page draw
is now only used on entry. Field-switch (long-press CONFIRM) refreshes
both digit regions to clear any stale blanked-out state.
This commit is contained in:
edisondeng
2026-07-31 19:14:14 +08:00
parent d4b89c9336
commit dac2ea4335
3 changed files with 59 additions and 34 deletions

View File

@@ -82,4 +82,11 @@ void UI_ShowMainMenu(u8 selected_index);
*/
void UI_ShowSetTimePage(u8 hour, u8 min, u8 selection, u8 blink_on);
/**
* @brief 局部刷新时间设置界面里正在调节的那一个数字 (小时或分钟),用于闪烁/调值时避免整屏重绘
* @param selection 1:刷新小时区域, 2:刷新分钟区域
* @param blink_on 1:显示数值, 0:消隐(涂黑)
*/
void UI_UpdateSetTimeDigit(u8 hour, u8 min, u8 selection, u8 blink_on);
#endif // __UI_H__