From 09576bb6e1ee823d90c04165197ed8b1ee59a1c1 Mon Sep 17 00:00:00 2001 From: Misaki Date: Sat, 28 Mar 2026 21:58:21 +0900 Subject: [PATCH] fix(docking): enforce DockDocument children in DockGroup and fix style --- .../View/Controls/Docking/DockContainer.cs | 4 ++-- .../Ghost.Editor/View/Controls/Docking/DockGroup.cs | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs b/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs index 849556a..9dabd59 100644 --- a/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs +++ b/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs @@ -19,7 +19,7 @@ public abstract class DockContainer : DockModule OnChildrenUpdated(); } - public void AddChild(DockModule module) + public virtual void AddChild(DockModule module) { ArgumentNullException.ThrowIfNull(module); @@ -45,7 +45,7 @@ public abstract class DockContainer : DockModule _children.Add(module); } - public void RemoveChild(DockModule module) + public virtual void RemoveChild(DockModule module) { ArgumentNullException.ThrowIfNull(module); diff --git a/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs b/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs index 6d4d7c9..879253f 100644 --- a/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs +++ b/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs @@ -1,6 +1,5 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; - using Microsoft.UI.Xaml.Data; namespace Ghost.Editor.View.Controls.Docking; @@ -16,6 +15,16 @@ public partial class DockGroup : DockContainer DefaultStyleKey = typeof(DockGroup); } + public override void AddChild(DockModule module) + { + if (module is not DockDocument) + { + throw new ArgumentException($"{nameof(DockGroup)} only accepts {nameof(DockDocument)} children.", nameof(module)); + } + + base.AddChild(module); + } + protected override void OnApplyTemplate() { base.OnApplyTemplate();