Merged
Conversation
This was referenced Feb 2, 2026
This was referenced Feb 9, 2026
This was referenced Feb 18, 2026
This was referenced Feb 25, 2026
This was referenced Mar 4, 2026
Closed
This was referenced Mar 16, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR summary: issue 936 default dockable split fix
Summary
Fixes a layout serialization failure where
RootDock.DefaultDockablecould pointto a replaced dock after a global split operation. The fix keeps the default
pointer aligned with the new split container and adds a regression test.
Findings
SplitToDock) updatesActiveDockablebut leftDefaultDockablepointing at the old dock instance.an orphaned
DefaultDockablereference, which can break load or result in aninvalid root state.
a split wraps the dock in a new
ProportionalDock, leaving the root defaultpointed at the pre-split dock.
Implementation
FactoryBase.SplitToDocknow detects when the owner default is the dock beingreplaced and retargets
DefaultDockableto the new split layout.altering behavior when the owner container is reused.
ActiveDockableandDefaultDockablepoint to the new layout after a split.
Usage guide
RootDock.DefaultDockableto restore the main layout on load,it will now follow split replacements automatically.
DockMvvmSample, use the issue repro steps: perform a globalsplit on the root, save the layout, then reload. The layout should deserialize
correctly and the root default should match the split container.
FactoryBase.SplitToDock, mirrorthis behavior by updating
DefaultDockablewhen a dock is replaced.Tests
dotnet testFixes #936