背景
来源于 workspace-switch-refactor-plan 中提出的长期重构方向。
方案
长期更干净的结构是拆分:
Window chrome renderer
负责:
- workspace switcher
- tab bar
- widgets/sidebar
- command palette/global UI
- window settings
Tab content BrowserViews
负责:
- layout
- blocks
- xterm
- tab-scoped model
workspace switch 时:
window chrome 更新 workspaceId/tabids
tab content manager 选择目标 active tab BrowserView
tab content renderer 不参与 workspace chrome reinit
这能从根上避免"tab renderer 同时负责 workspace chrome"的耦合,但改动面较大,不建议作为第一步。
待讨论问题
若推进此方案,需要单独讨论:
- 多 WebContentsView 架构
- focus routing
- IPC 边界
- 窗口 resize
- context menu
- drag/drop
- shortcut ownership
参考
原始文档:docs/design/workspace-switch-refactor-plan.md(第 404-437 行)
背景
来源于 workspace-switch-refactor-plan 中提出的长期重构方向。
方案
长期更干净的结构是拆分:
Window chrome renderer
负责:
Tab content BrowserViews
负责:
workspace switch 时:
这能从根上避免"tab renderer 同时负责 workspace chrome"的耦合,但改动面较大,不建议作为第一步。
待讨论问题
若推进此方案,需要单独讨论:
参考
原始文档:docs/design/workspace-switch-refactor-plan.md(第 404-437 行)