The solution above from Hyaniner may cause some errors/crashes. The solution below removes a redundancy and unnecessary variable check, has been tested by our dev team, and is stable and fully functional in UE 5.3.2.
Edit \Engine\Source\Runtime\Slate\Private\Framework\Docking\TabManager.cpp
, and replace the following block of code:
// Any windows that were "pulled out" of a dock area should be children of the window in which the parent dock area resides.
if (bIsChildWindow)
{
FSlateApplication::Get().AddWindowAsNativeChild(NewWindow, ParentWindow.ToSharedRef())->SetContent(
SAssignNew(NewDockAreaWidget, SDockingArea, SharedThis(this), NodeAsArea.ToSharedRef()).ParentWindow(NewWindow)
);
}
else
{
FSlateApplication::Get().AddWindow(NewWindow)->SetContent(
SAssignNew(NewDockAreaWidget, SDockingArea, SharedThis(this), NodeAsArea.ToSharedRef()).ParentWindow(NewWindow)
);
}
With this block of code:
// Any windows that were "pulled out" of a dock area should be children of the window in which the parent dock area resides.
// if (bIsChildWindow)
// {
// FSlateApplication::Get().AddWindowAsNativeChild(NewWindow, ParentWindow.ToSharedRef())->SetContent(
// SAssignNew(NewDockAreaWidget, SDockingArea, SharedThis(this), NodeAsArea.ToSharedRef()).ParentWindow(NewWindow)
// );
// }
// else
{
FSlateApplication::Get().AddWindow(NewWindow)->SetContent(
SAssignNew(NewDockAreaWidget, SDockingArea, SharedThis(this), NodeAsArea.ToSharedRef()).ParentWindow(NewWindow)
);
}
Then save the file, and rebuild UGS/Unreal Editor. If you’re not familiar with how to do this, you’ll need to take the time to read up on it and learn, and you’ll need Visual Studio installed if you don’t have it already.
Or, if you’re part of a dev team, you could submit a request to your engineering team to make this change to implement it for everyone on the team.
This change removes the “child window” if/else statement, effectively ignoring the bIsChildWindow
variable, so that any new window functions the same as a regular “parent” window (which is basically the way most other Windows apps function).