feat: white-tone desktop + login crossfade + BUG-031 FAT chain fix + DESK-E texture panics

- BUG-031: fat32_io.h on-demand FAT sector read (FAT beyond 128KB cache walked OOB, font/wallpaper corrupted past first clusters); host unit test diff=0

- material pack: gen_textures.py wired into build.ps1, startMenuLogo.rgba packaged; missing wallpaper/logo/font now fatal (DESK-E02/E03/E04 red fatal screen)

- login->desktop crossfade 16 steps, boot typewriter screen removed

- IDE exit: Esc detaches and returns to desktop page

- white theme: KS_* light palette, g_wf_light taskbar, hardcoded dark fills replaced

- QEMU verified: labels/clock render, wallpaper + start logo loaded, zero spurious panic
This commit is contained in:
Linehu
2026-10-04 15:53:04 +08:00
parent 174af71b39
commit 5f01904be1
14 changed files with 160 additions and 96 deletions
+11
View File
@@ -482,6 +482,17 @@ int handle_key(u8 sc) {
if (sc == 0x01) {
if (g_taskview) { g_taskview = 0; return 1; }
if (g_ctx_open) { g_ctx_open = 0; return 1; }
/* IDE 页:Esc = detach + 退回桌面页(IDE 退出通道) */
if (g_page == 2) {
if (g_ide_attached) {
g_ide_attached = 0;
g_input_forward_enabled = 0;
ide_attach_invalidate();
slog("ide detached (esc), input forwarding off");
}
page_switch(3);
return 1;
}
return 0;
}
if (g_taskview || g_ctx_open) return 0; /* 模态期间吞掉按键 */