fix(dock): address reviewer feedback on window tear-off

This commit is contained in:
2026-03-28 15:48:56 +09:00
parent 07274b6699
commit e83555498a
3 changed files with 19 additions and 8 deletions

View File

@@ -300,12 +300,15 @@ public sealed partial class DockLayout : Control
if (_sourceNode != null && _draggedItem != null)
{
// Remove from current tree
_sourceNode.Items.Remove(_draggedItem);
DockMutationEngine.CleanupEmptyNodes(_sourceNode, Root);
if (_sourceNode.Items.Remove(_draggedItem))
{
DockMutationEngine.CleanupEmptyNodes(_sourceNode);
// Create new window
var newWindow = new Ghost.Editor.View.Windows.DockWindow(_draggedItem);
newWindow.Activate();
// Create new window and register it with App to prevent GC
var newWindow = new Ghost.Editor.View.Windows.DockWindow(_draggedItem);
App.AddSecondaryWindow(newWindow);
newWindow.Activate();
}
ClearDragOperationState();
}