mirror of
https://github.com/Drezil/imgui.git
synced 2025-07-06 13:08:47 +02:00
Docking: Added DockNodeFlagsOverrideSet/DockNodeFlagsOverrideClear (experimental)
This commit is contained in:
10
imgui.cpp
10
imgui.cpp
@ -12313,6 +12313,7 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod
|
||||
DockNodeUpdateVisibleFlagAndInactiveChilds(node->ChildNodes[1]);
|
||||
|
||||
// Remove inactive windows
|
||||
// Merge node flags overrides stored in windows
|
||||
for (int window_n = 0; window_n < node->Windows.Size; window_n++)
|
||||
{
|
||||
ImGuiWindow* window = node->Windows[window_n];
|
||||
@ -12336,6 +12337,11 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod
|
||||
DockNodeRemoveWindow(node, window, node->ID);
|
||||
window_n--;
|
||||
}
|
||||
else
|
||||
{
|
||||
node->LocalFlags &= ~window->WindowClass.DockNodeFlagsOverrideClear;
|
||||
node->LocalFlags |= window->WindowClass.DockNodeFlagsOverrideSet;
|
||||
}
|
||||
}
|
||||
|
||||
// Auto-hide tab bar option
|
||||
@ -12344,6 +12350,10 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod
|
||||
node->WantHiddenTabBarToggle = true;
|
||||
node->WantHiddenTabBarUpdate = false;
|
||||
|
||||
// Cancel toggling if we know our tab bar is enforced to be hidden at all times
|
||||
if (node->WantHiddenTabBarToggle && node->VisibleWindow && (node->VisibleWindow->WindowClass.DockNodeFlagsOverrideSet & ImGuiDockNodeFlags_HiddenTabBar))
|
||||
node->WantHiddenTabBarToggle = false;
|
||||
|
||||
// Apply toggles at a single point of the frame (here!)
|
||||
if (node->Windows.Size > 1)
|
||||
node->LocalFlags &= ~ImGuiDockNodeFlags_HiddenTabBar;
|
||||
|
Reference in New Issue
Block a user