Skip to content

fix(pane): 修复切换工作区时分屏终端残留 - #123

Merged
chenbstack merged 1 commit into
chenbstack:mainfrom
defia:fix/pane-deferred-mount-recovery
Oct 8, 2026
Merged

chenbstack merged 1 commit into
chenbstack:mainfrom
defia:fix/pane-deferred-mount-recovery

Conversation

@defia

@defia defia commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

变更内容 / Summary

左右分屏切换工作区时,如果目标容器晚于延期回调挂到窗口,原逻辑会直接放弃挂载,留下旧工作区终端;如果容器在回调前已被其他终端复用,旧回调又可能把新终端挤掉。

将延期挂载登记为待恢复请求,让后续窗口挂载事件继续恢复;回调同时核对请求 epoch 和容器/终端双向关联,使已被替代的请求失效。复用现有恢复机制,保留新旧容器的归属仲裁。

验证方式 / Testing

  • 新增两个直接调用生产挂载逻辑的 AppKit 回归测试,覆盖晚挂载且没有第二次更新、延期回调前容器已复用;修改前两个测试均失败。
  • 最终提交在最新 upstream/main 上运行 GlintTests/PerformanceRegressionTests:45/45 通过。
  • git diff --check 通过;PR 仅包含挂载实现和回归测试两个文件。

截图或录屏 / Screenshots or recordings

本次验证为确定性生命周期回归测试。尚未在用户当前运行的 Release 中完成原始界面场景验收,未替换或重启该应用。

关联议题 / Related issues

延续 #109、#111 的分屏容器归属与恢复修复。

@chenbstack
chenbstack merged commit ce56e1b into chenbstack:main Oct 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants