mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 15:11:05 +01: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