mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
Convert the settings window into an independent top-level window with its own taskbar icon and open-or-focus semantics. Removed Owner/anchor/toggle semantics from SettingsWindowService and added ScreenReferenceWindow for centering; settings windows now ShowInTaskbar = true and are truly destroyed on close. Added SettingsWindowPlacementHelper and tests for placement/centering. Main window now respects an AppSettingsSnapshot.ShowInTaskbar flag (new setting exposed in GeneralSettings UI) and slide/visibility animations and "back to Windows" behavior no longer affect the independent settings window. Updated various callers to use OpenIndependentSettingsModule, adjusted window transitions/X offsets, and added/updated spec files documenting the feature and animation boundary.
1.0 KiB
1.0 KiB
Tasks
-
Task 1: 简化设置窗口打开契约
- 将
SettingsWindowOpenRequest从 owner / anchor 语义改为目标页 + 参考屏幕语义 - 移除
ISettingsWindowService.Toggle
- 将
-
Task 2: 重做设置窗口服务行为
- 设置窗口始终使用
Show()打开 - 设置窗口始终
ShowInTaskbar = true - 已打开时只聚焦并在需要时切页
- 关闭后销毁实例,下次打开重新创建并居中
- 设置窗口始终使用
-
Task 3: 统一设置入口并解耦桌面壳
- 桌面底栏设置按钮改为 open-or-focus
- 组件库入口改为复用
OpenIndependentSettingsModule - 移除
MainWindow上的设置窗口锚点逻辑
-
Task 4: 明确产品边界
- 调整“在任务栏显示图标”文案,限定为桌面主窗口
- 新增独立设置窗口 feature spec
- 在窗口过渡动画 spec 中补充“设置窗口不参与动画”
-
Task 5: 验证
- 运行
dotnet build LanMountainDesktop.slnx -c Debug - 运行与新 helper 相关的测试
- 运行