Skip to content

[Feature] 可拖拽停靠工具窗口系统 / 动态 Docking 布局系统 #496

Description

@xiaoyumuxi

Problem to solve / 要解决的问题

由于现在很多窗口都是固定死的,但实际上在 IDEA 里面,可以将对应的窗口上下左右移动,而且还支持并排动态
Image
Image

Proposed solution / 建议方案

面板 resize 已经存在,sidebar 宽度、上下 Pane 的高度也有状态和持久化。需要从“固定 Split View”升级到“动态 Layout Tree”。

核心上不是修改 frame,而是维护一棵 Layout Tree。叶子节点表示具体 Pane,中间节点表示水平或垂直 Split,并保存 split ratio。用户拖动 Tool Window 时进行 drop-zone hit testing,确定目标节点和停靠方向,然后对布局树进行插入、删除和重组,由 SwiftUI 根据新的树重新构建界面。

技术点主要是Drag & Drop + Hit Testing + Layout Tree + Split Layout + State Persistence。

Target platform / 目标平台

macOS

Area / 模块

Editor / 编辑器

Priority / 优先级

P0 / 立即处理:已严重影响使用体验,核心流程受阻或无法正常使用

Alternatives considered / 已考虑的替代方案

No response

Additional context / 补充信息

No response

Checklist / 提交前检查

  • I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复建议。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P0立即处理:已严重影响使用体验,核心流程受阻或无法正常使用area:editorenhancementNew feature or requestplatform:macos

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions