TermiNexus
30f47ca4f4
fix(vkernel/desktop): 时钟改为按时间每秒刷新 RTC,不再绑到渲染速率
现象:任务栏时间区域不会自己走,必须鼠标移过去才刷新。
根因:_draw_taskbar 里 RTC 缓存按“渲染次数”节流重读 ——
if _render_count % 30 == 0: rtc.rtc_read_time()
而渲染频率完全取决于活动量:空闲约 1 帧/秒 → 要 30 秒才重读一次 RTC;鼠标一移动渲染
变快,_render_count 迅速累加,很快命中 %30==0 → 时钟立刻跟上。这正是“必须鼠标移动
才刷新”的成因。
修改:
- desktop_thread 的“每秒”分支(cur_sec != _last_clock_sec)里先 rtc.rtc_read_time()
再标脏任务栏行 —— 时钟严格按秒刷新,与渲染速率解耦。
- _draw_taskbar 移除 _render_count % 30 的 RTC 重读,只取缓存值绘制。
2026-10-14 15:46:29 +08:00
..
2026-10-14 15:46:29 +08:00
2026-10-14 12:54:43 +08:00
2026-09-28 15:24:52 +08:00