Files
lincube e20462ac2b Make settings window independent and taskbar-aware
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.
2026-04-22 20:46:43 +08:00

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 相关的测试