mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-22 00:02:23 +00:00
* feat(windows): taskbar status overlay per window (#199) Stamp a colored status dot on each window's taskbar button using the same palette as the in-window agent dots: - blue while a shell command or agent is working, - amber when an agent is waiting on the user, - green when work finishes while the window is unfocused (cleared on activation). Adds a `taskbar_status_icon` setting (default on, Windows only) and a Settings -> Window & Tabs row. The overlay is updated by a foreground poll that aggregates agent status and shell busy state across each window's panes, diffing against the current taskbar badge and only calling ITaskbarList3::SetOverlayIcon when the badge changes. Includes unit tests for overlay priority and the done-while-unfocused edge tracking. * fix(taskbar): retry a failed overlay instead of caching it as drawn Four fixes on top of the overlay: - A failed SetOverlayIcon was still recorded in `shown`, so a badge the taskbar never took was remembered as drawn and never retried. Stamp now reports success, and a failure drops the interface so the next tick re-creates it — which is also what an Explorer restart needs. - `create_failed` was a permanent latch: one CoCreateInstance failure killed the badge for the whole process, though Explorer may simply not be up yet when the first window opens. Use the tray's attempts/cooldown backoff instead, which this module otherwise copies. - The overlay's accessibility description was hard-coded English in an app that localizes everything else. Reuse the panel and tray strings. - Render the dot at 32px, not 16. SetOverlayIcon wants 16x16 at 96 dpi, so at 150%/200% scaling the shell upscaled a 16px icon; `tray::icon` already renders at 32 off macOS for the same reason. Also drops the Win32_Graphics_Gdi feature: CreateIcon, DestroyIcon and HICON all live in Win32_UI_WindowsAndMessaging, and the build and the taskbar tests pass without it. Claude-Session: https://claude.ai/code/session_01H9QqEZ6JH3dGS6atEcf6ab --------- Co-authored-by: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Co-authored-by: l0ng-ai <ysdpk123@gmail.com>
44 lines
891 B
Rust
44 lines
891 B
Rust
pub mod app;
|
|
pub mod assets;
|
|
pub mod code_editor;
|
|
pub mod diff_overlay;
|
|
pub mod file_tree;
|
|
pub mod forwards;
|
|
pub mod hints;
|
|
pub mod home;
|
|
#[allow(dead_code)]
|
|
pub mod host_ops;
|
|
#[allow(dead_code)]
|
|
pub mod host_registry;
|
|
pub mod i18n;
|
|
pub mod keymap;
|
|
pub mod local_link;
|
|
pub mod machine_mirror;
|
|
pub mod palette;
|
|
pub mod pane;
|
|
pub mod pending_pane;
|
|
pub mod perf;
|
|
pub mod presets;
|
|
pub mod remote_connect;
|
|
pub mod remote_workspace;
|
|
pub mod reorder;
|
|
pub mod right_panel;
|
|
pub mod rounding;
|
|
pub mod scrollbar;
|
|
pub mod settings;
|
|
pub mod sftp;
|
|
pub mod ssh_connect;
|
|
pub mod ssh_prompt;
|
|
pub mod switcher;
|
|
pub mod tab_sidebar;
|
|
pub mod tab_strip;
|
|
// Taskbar overlay badges are a Windows concept (`ITaskbarList3`); macOS's
|
|
// Dock badge would be this module's sibling, not its port.
|
|
#[cfg(windows)]
|
|
pub mod taskbar;
|
|
pub mod theme;
|
|
pub mod tray;
|
|
pub mod tree_sync;
|
|
pub mod windows;
|
|
pub mod worktree_prompt;
|