@ -12770,7 +12770,7 @@ static void ImGui::DockContextBuildNodesFromSettings(ImGuiContext* ctx, ImGuiDoc 
			
		
	
		
			
				
					            node - > ParentNode - > ChildNodes [ 1 ]  =  node ;   
			
		
	
		
			
				
					        node - > SelectedTabId  =  settings - > SelectedTabId ;   
			
		
	
		
			
				
					        node - > SplitAxis  =  ( ImGuiAxis ) settings - > SplitAxis ;   
			
		
	
		
			
				
					        node - > LocalFlags  | =   ( settings - > Flags  &  ImGuiDockNodeFlags_SavedFlagsMask_ ) ;   
			
		
	
		
			
				
					        node - > Set LocalFlags( settings - > Flags  &  ImGuiDockNodeFlags_SavedFlagsMask_ ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Bind host window immediately if it already exist (in case of a rebuild)
   
			
		
	
		
			
				
					        // This is useful as the RootWindowForTitleBarHighlight links necessary to highlight the currently focused node requires node->HostWindow to be set.
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12912,7 +12912,7 @@ void ImGui::DockContextProcessDock(ImGuiContext* ctx, ImGuiDockRequest* req) 
			
		
	
		
			
				
					        new_node - > HostWindow  =  node - > HostWindow ;   
			
		
	
		
			
				
					        node  =  new_node ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    node - > LocalFlags  & = ~ ImGuiDockNodeFlags_HiddenTabBar ;   
			
		
	
		
			
				
					    node - > SetLocalFlags ( node - > LocalFlags  & ~ ImGuiDockNodeFlags_HiddenTabBar ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( node  ! =  payload_node )   
			
		
	
		
			
				
					    {   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -12950,8 +12950,8 @@ void ImGui::DockContextProcessDock(ImGuiContext* ctx, ImGuiDockRequest* req) 
			
		
	
		
			
				
					                    IM_ASSERT ( last_focused_node  ! =  NULL ) ;   
			
		
	
		
			
				
					                    ImGuiDockNode *  last_focused_root_node  =  DockNodeGetRootNode ( last_focused_node ) ;   
			
		
	
		
			
				
					                    IM_ASSERT ( last_focused_root_node  = =  DockNodeGetRootNode ( payload_node ) ) ;   
			
		
	
		
			
				
					                    last_focused_node - > LocalFlags  | =  ImGuiDockNodeFlags_CentralNode ;   
			
		
	
		
			
				
					                    node - > LocalFlags  & = ~ ImGuiDockNodeFlags_CentralNode ;   
			
		
	
		
			
				
					                    last_focused_node - > SetLocalFlags ( last_focused_node - > LocalFlags  | =  ImGuiDockNodeFlags_CentralNode ) ;   
			
		
	
		
			
				
					                    node - > SetLocalFlags ( node - > LocalFlags  & ~ ImGuiDockNodeFlags_CentralNode ) ;   
			
		
	
		
			
				
					                    last_focused_root_node - > CentralNode  =  last_focused_node ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -13112,7 +13112,7 @@ bool ImGui::DockContextCalcDropPosForDocking(ImGuiWindow* target, ImGuiDockNode* 
			
		
	
		
			
				
					ImGuiDockNode : : ImGuiDockNode ( ImGuiID  id )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    ID  =  id ;   
			
		
	
		
			
				
					    SharedFlags  =  LocalFlags  =  ImGuiDockNodeFlags_None ;   
			
		
	
		
			
				
					    SharedFlags  =  LocalFlags  =  LocalFlagsInWindows  =  MergedFlags  =  ImGuiDockNodeFlags_None ;   
			
		
	
		
			
				
					    ParentNode  =  ChildNodes [ 0 ]  =  ChildNodes [ 1 ]  =  NULL ;   
			
		
	
		
			
				
					    TabBar  =  NULL ;   
			
		
	
		
			
				
					    SplitAxis  =  ImGuiAxis_None ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -13416,6 +13416,7 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Remove inactive windows
   
			
		
	
		
			
				
					    // Merge node flags overrides stored in windows
   
			
		
	
		
			
				
					    node - > LocalFlagsInWindows  =  ImGuiDockNodeFlags_None ;   
			
		
	
		
			
				
					    for  ( int  window_n  =  0 ;  window_n  <  node - > Windows . Size ;  window_n + + )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        ImGuiWindow *  window  =  node - > Windows [ window_n ] ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -13442,13 +13443,14 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod 
			
		
	
		
			
				
					        else   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            // FIXME-DOCKING: Missing policies for conflict resolution, hence the "Experimental" tag on this.
   
			
		
	
		
			
				
					            //node->LocalFlags &= ~window->WindowClass.DockNodeFlagsOverrideClear;
   
			
		
	
		
			
				
					            node - > LocalFlags  | =  window - > WindowClass . DockNodeFlagsOverrideSet ;   
			
		
	
		
			
				
					            //node->LocalFlagsInWindow  &= ~window->WindowClass.DockNodeFlagsOverrideClear;
   
			
		
	
		
			
				
					            node - > LocalFlagsInWindows   | =  window - > WindowClass . DockNodeFlagsOverrideSet ;   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    node - > UpdateMergedFlags ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Auto-hide tab bar option
   
			
		
	
		
			
				
					    ImGuiDockNodeFlags  node_flags  =  node - > Get MergedFlags( ) ;   
			
		
	
		
			
				
					    ImGuiDockNodeFlags  node_flags  =  node - > MergedFlags ;   
			
		
	
		
			
				
					    if  ( node - > WantHiddenTabBarUpdate  & &  node - > Windows . Size  = =  1  & &  ( node_flags  &  ImGuiDockNodeFlags_AutoHideTabBar )  & &  ! node - > IsHiddenTabBar ( ) )   
			
		
	
		
			
				
					        node - > WantHiddenTabBarToggle  =  true ;   
			
		
	
		
			
				
					    node - > WantHiddenTabBarUpdate  =  false ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -13459,9 +13461,9 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Apply toggles at a single point of the frame (here!)
   
			
		
	
		
			
				
					    if  ( node - > Windows . Size  >  1 )   
			
		
	
		
			
				
					        node - > LocalFlags  & = ~ ImGuiDockNodeFlags_HiddenTabBar ;   
			
		
	
		
			
				
					        node - > SetLocalFlags ( node - > LocalFlags  & ~ ImGuiDockNodeFlags_HiddenTabBar ) ;   
			
		
	
		
			
				
					    else  if  ( node - > WantHiddenTabBarToggle )   
			
		
	
		
			
				
					        node - > LocalFlags  ^ = ImGuiDockNodeFlags_HiddenTabBar ;   
			
		
	
		
			
				
					        node - > SetLocalFlags ( node - > LocalFlags  ^ ImGuiDockNodeFlags_HiddenTabBar ) ;   
			
		
	
		
			
				
					    node - > WantHiddenTabBarToggle  =  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    DockNodeUpdateVisibleFlag ( node ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -13599,7 +13601,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node) 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  ImGuiDockNodeFlags  node_flags  =  node - > Get MergedFlags( ) ;   
			
		
	
		
			
				
					    const  ImGuiDockNodeFlags  node_flags  =  node - > MergedFlags ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Decide if the node will have a close button and a window menu button
   
			
		
	
		
			
				
					    node - > HasWindowMenuButton  =  ( node - > Windows . Size  >  0 )  & &  ( node_flags  &  ImGuiDockNodeFlags_NoWindowMenuButton )  = =  0 ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -13851,7 +13853,7 @@ bool ImGui::DockNodeBeginAmendTabBar(ImGuiDockNode* node) 
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    if  ( node - > TabBar  = =  NULL  | |  node - > HostWindow  = =  NULL )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					    if  ( node - > Shar edFlags&  ImGuiDockNodeFlags_KeepAliveOnly )   
			
		
	
		
			
				
					    if  ( node - > Merg edFlags&  ImGuiDockNodeFlags_KeepAliveOnly )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					    Begin ( node - > HostWindow - > Name ) ;   
			
		
	
		
			
				
					    PushOverrideID ( node - > ID ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -13929,7 +13931,7 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w 
			
		
	
		
			
				
					    ImGuiID  focus_tab_id  =  0 ;   
			
		
	
		
			
				
					    node - > IsFocused  =  is_focused ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  ImGuiDockNodeFlags  node_flags  =  node - > Get MergedFlags( ) ;   
			
		
	
		
			
				
					    const  ImGuiDockNodeFlags  node_flags  =  node - > MergedFlags ;   
			
		
	
		
			
				
					    const  bool  has_window_menu_button  =  ( node_flags  &  ImGuiDockNodeFlags_NoWindowMenuButton )  = =  0  & &  ( style . WindowMenuButtonPosition  ! =  ImGuiDir_None ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // In a dock node, the Collapse Button turns into the Window Menu button.
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -14323,8 +14325,8 @@ static void ImGui::DockNodePreviewDockSetup(ImGuiWindow* host_window, ImGuiDockN 
			
		
	
		
			
				
					        IM_ASSERT ( ref_node_for_rect - > IsVisible ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Filter, figure out where we are allowed to dock
   
			
		
	
		
			
				
					    ImGuiDockNodeFlags  src_node_flags  =  root_payload_as_host  ?  root_payload_as_host - > Get MergedFlags( )  :  root_payload - > WindowClass . DockNodeFlagsOverrideSet ;   
			
		
	
		
			
				
					    ImGuiDockNodeFlags  dst_node_flags  =  host_node  ?  host_node - > Get MergedFlags( )  :  host_window - > WindowClass . DockNodeFlagsOverrideSet ;   
			
		
	
		
			
				
					    ImGuiDockNodeFlags  src_node_flags  =  root_payload_as_host  ?  root_payload_as_host - > MergedFlags   :  root_payload - > WindowClass . DockNodeFlagsOverrideSet ;   
			
		
	
		
			
				
					    ImGuiDockNodeFlags  dst_node_flags  =  host_node  ?  host_node - > MergedFlags   :  host_window - > WindowClass . DockNodeFlagsOverrideSet ;   
			
		
	
		
			
				
					    data - > IsCenterAvailable  =  true ;   
			
		
	
		
			
				
					    if  ( is_outer_docking )   
			
		
	
		
			
				
					        data - > IsCenterAvailable  =  false ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -14504,7 +14506,7 @@ static void ImGui::DockNodePreviewDockRender(ImGuiWindow* host_window, ImGuiDock 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Stop after ImGuiDir_None
   
			
		
	
		
			
				
					        if  ( ( host_node  & &  ( host_node - > Get MergedFlags( ) &  ImGuiDockNodeFlags_NoSplit ) )  | |  g . IO . ConfigDockingNoSplit )   
			
		
	
		
			
				
					        if  ( ( host_node  & &  ( host_node - > MergedFlags  &  ImGuiDockNodeFlags_NoSplit ) )  | |  g . IO . ConfigDockingNoSplit )   
			
		
	
		
			
				
					            return ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -14557,6 +14559,9 @@ void ImGui::DockNodeTreeSplit(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImG 
			
		
	
		
			
				
					    child_1 - > SharedFlags  =  parent_node - > SharedFlags  &  ImGuiDockNodeFlags_SharedFlagsInheritMask_ ;   
			
		
	
		
			
				
					    child_inheritor - > LocalFlags  =  parent_node - > LocalFlags  &  ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;   
			
		
	
		
			
				
					    parent_node - > LocalFlags  & =  ~ ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;   
			
		
	
		
			
				
					    child_0 - > UpdateMergedFlags ( ) ;   
			
		
	
		
			
				
					    child_1 - > UpdateMergedFlags ( ) ;   
			
		
	
		
			
				
					    parent_node - > UpdateMergedFlags ( ) ;   
			
		
	
		
			
				
					    if  ( child_inheritor - > IsCentralNode ( ) )   
			
		
	
		
			
				
					        DockNodeGetRootNode ( parent_node ) - > CentralNode  =  child_inheritor ;   
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -14596,6 +14601,8 @@ void ImGui::DockNodeTreeMerge(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImG 
			
		
	
		
			
				
					    parent_node - > LocalFlags  & =  ~ ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;  // Preserve Dockspace flag
   
			
		
	
		
			
				
					    parent_node - > LocalFlags  | =  ( child_0  ?  child_0 - > LocalFlags  :  0 )  &  ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;   
			
		
	
		
			
				
					    parent_node - > LocalFlags  | =  ( child_1  ?  child_1 - > LocalFlags  :  0 )  &  ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;   
			
		
	
		
			
				
					    parent_node - > LocalFlagsInWindows  =  ( child_0  ?  child_0 - > LocalFlagsInWindows  :  0 )  |  ( child_1  ?  child_1 - > LocalFlagsInWindows  :  0 ) ;  // FIXME: Would be more consistent to update from actual windows
   
			
		
	
		
			
				
					    parent_node - > UpdateMergedFlags ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( child_0 )   
			
		
	
		
			
				
					    {   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -14727,7 +14734,7 @@ void ImGui::DockNodeTreeUpdateSplitter(ImGuiDockNode* node) 
			
		
	
		
			
				
					        bb . Max [ axis  ^  1 ]  + =  child_1 - > Size [ axis  ^  1 ] ;   
			
		
	
		
			
				
					        //if (g.IO.KeyCtrl) GetForegroundDrawList(g.CurrentWindow->Viewport)->AddRect(bb.Min, bb.Max, IM_COL32(255,0,255,255));
   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        const  ImGuiDockNodeFlags  merged_flags  =  child_0 - > Get MergedFlags( ) |  child_1 - > GetMergedFlags ( ) ;   
			
		
	
		
			
				
					        const  ImGuiDockNodeFlags  merged_flags  =  child_0 - > MergedFlags  |  child_1 - > MergedFlags ;  // Merged flags for BOTH childs
   
			
		
	
		
			
				
					        const  ImGuiDockNodeFlags  no_resize_axis_flag  =  ( axis  = =  ImGuiAxis_X )  ?  ImGuiDockNodeFlags_NoResizeX  :  ImGuiDockNodeFlags_NoResizeY ;   
			
		
	
		
			
				
					        if  ( ( merged_flags  &  ImGuiDockNodeFlags_NoResize )  | |  ( merged_flags  &  no_resize_axis_flag ) )   
			
		
	
		
			
				
					        {   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -14921,7 +14928,7 @@ ImGuiID ImGui::DockSpace(ImGuiID id, const ImVec2& size_arg, ImGuiDockNodeFlags 
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        IMGUI_DEBUG_LOG_DOCKING ( " DockSpace: dockspace node 0x%08X created \n " ,  id ) ;   
			
		
	
		
			
				
					        node  =  DockContextAddNode ( ctx ,  id ) ;   
			
		
	
		
			
				
					        node - > LocalFlags  | =  ImGuiDockNodeFlags_CentralNode ;   
			
		
	
		
			
				
					        node - > SetLocalFlags ( ImGuiDockNodeFlags_CentralNode ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    if  ( window_class  & &  window_class - > ClassId  ! =  node - > WindowClass . ClassId )   
			
		
	
		
			
				
					        IMGUI_DEBUG_LOG_DOCKING ( " DockSpace: dockspace node 0x%08X: setup WindowClass 0x%08X -> 0x%08X \n " ,  id ,  node - > WindowClass . ClassId ,  window_class - > ClassId ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -14933,10 +14940,10 @@ ImGuiID ImGui::DockSpace(ImGuiID id, const ImVec2& size_arg, ImGuiDockNodeFlags 
			
		
	
		
			
				
					    if  ( node - > LastFrameActive  = =  g . FrameCount  & &  ! ( flags  &  ImGuiDockNodeFlags_KeepAliveOnly ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        IM_ASSERT ( node - > IsDockSpace ( )  = =  false  & &  " Cannot call DockSpace() twice a frame with the same ID " ) ;   
			
		
	
		
			
				
					        node - > LocalFlags  | = ImGuiDockNodeFlags_DockSpace ;   
			
		
	
		
			
				
					        node - > SetLocalFlags ( node - > LocalFlags  | ImGuiDockNodeFlags_DockSpace ) ;   
			
		
	
		
			
				
					        return  id ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    node - > LocalFlags  | = ImGuiDockNodeFlags_DockSpace ;   
			
		
	
		
			
				
					    node - > SetLocalFlags ( node - > LocalFlags  | ImGuiDockNodeFlags_DockSpace ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Keep alive mode, this is allow windows docked into this node so stay docked even if they are not visible
   
			
		
	
		
			
				
					    if  ( flags  &  ImGuiDockNodeFlags_KeepAliveOnly )   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -14988,7 +14995,7 @@ ImGuiID ImGui::DockSpace(ImGuiID id, const ImVec2& size_arg, ImGuiDockNodeFlags 
			
		
	
		
			
				
					    // The specific sub-property of _CentralNode we are interested in recovering here is the "Don't delete when empty" property,
   
			
		
	
		
			
				
					    // as it doesn't make sense for an empty dockspace to not have this property.
   
			
		
	
		
			
				
					    if  ( node - > IsLeafNode ( )  & &  ! node - > IsCentralNode ( ) )   
			
		
	
		
			
				
					        node - > LocalFlags  | = ImGuiDockNodeFlags_CentralNode ;   
			
		
	
		
			
				
					        node - > SetLocalFlags ( node - > LocalFlags  | ImGuiDockNodeFlags_CentralNode ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Update the node
   
			
		
	
		
			
				
					    DockNodeUpdate ( node ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -15127,7 +15134,7 @@ ImGuiID ImGui::DockBuilderAddNode(ImGuiID id, ImGuiDockNodeFlags flags) 
			
		
	
		
			
				
					    else   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        node  =  DockContextAddNode ( ctx ,  id ) ;   
			
		
	
		
			
				
					        node - > LocalFlags  =  flags ;   
			
		
	
		
			
				
					        node - > SetLocalFlags ( flags ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    node - > LastFrameAlive  =  ctx - > FrameCount ;    // Set this otherwise BeginDocked will undock during the same frame.
   
			
		
	
		
			
				
					    return  node - > ID ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -15142,7 +15149,7 @@ void ImGui::DockBuilderRemoveNode(ImGuiID node_id) 
			
		
	
		
			
				
					    DockBuilderRemoveNodeDockedWindows ( node_id ,  true ) ;   
			
		
	
		
			
				
					    DockBuilderRemoveNodeChildNodes ( node_id ) ;   
			
		
	
		
			
				
					    if  ( node - > IsCentralNode ( )  & &  node - > ParentNode )   
			
		
	
		
			
				
					        node - > ParentNode - > LocalFlags  | = ImGuiDockNodeFlags_CentralNode ;   
			
		
	
		
			
				
					        node - > ParentNode - > SetLocalFlags ( node - > ParentNode - > LocalFlags  | ImGuiDockNodeFlags_CentralNode ) ;   
			
		
	
		
			
				
					    DockContextRemoveNode ( ctx ,  node ,  true ) ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -15212,8 +15219,8 @@ void ImGui::DockBuilderRemoveNodeChildNodes(ImGuiID root_id) 
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    else  if  ( has_central_node )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        root_node - > LocalFlags  | =  ImGuiDockNodeFlags_CentralNode ;   
			
		
	
		
			
				
					        root_node - > CentralNode  =  root_node ;   
			
		
	
		
			
				
					        root_node - > SetLocalFlags ( root_node - > LocalFlags  |  ImGuiDockNodeFlags_CentralNode ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -15295,10 +15302,12 @@ static ImGuiDockNode* DockBuilderCopyNodeRec(ImGuiDockNode* src_node, ImGuiID ds 
			
		
	
		
			
				
					    ImGuiDockNode *  dst_node  =  ImGui : : DockContextAddNode ( ctx ,  dst_node_id_if_known ) ;   
			
		
	
		
			
				
					    dst_node - > SharedFlags  =  src_node - > SharedFlags ;   
			
		
	
		
			
				
					    dst_node - > LocalFlags  =  src_node - > LocalFlags ;   
			
		
	
		
			
				
					    dst_node - > LocalFlagsInWindows  =  ImGuiDockNodeFlags_None ;   
			
		
	
		
			
				
					    dst_node - > Pos  =  src_node - > Pos ;   
			
		
	
		
			
				
					    dst_node - > Size  =  src_node - > Size ;   
			
		
	
		
			
				
					    dst_node - > SizeRef  =  src_node - > SizeRef ;   
			
		
	
		
			
				
					    dst_node - > SplitAxis  =  src_node - > SplitAxis ;   
			
		
	
		
			
				
					    dst_node - > UpdateMergedFlags ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    out_node_remap_pairs - > push_back ( src_node - > ID ) ;   
			
		
	
		
			
				
					    out_node_remap_pairs - > push_back ( dst_node - > ID ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -15606,7 +15615,7 @@ void ImGui::BeginDocked(ImGuiWindow* window, bool* p_open) 
			
		
	
		
			
				
					    window - > DockIsActive  =  true ;   
			
		
	
		
			
				
					    window - > DockNodeIsVisible  =  true ;   
			
		
	
		
			
				
					    window - > DockTabIsVisible  =  false ;   
			
		
	
		
			
				
					    if  ( node - > Shar edFlags&  ImGuiDockNodeFlags_KeepAliveOnly )   
			
		
	
		
			
				
					    if  ( node - > Merg edFlags&  ImGuiDockNodeFlags_KeepAliveOnly )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // When the window is selected we mark it as visible.
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -16734,9 +16743,16 @@ void ImGui::DebugNodeDockNode(ImGuiDockNode* node, const char* label) 
			
		
	
		
			
				
					            node - > IsCentralNode ( )  ?  "  IsCentralNode "  :  " " ,   
			
		
	
		
			
				
					            is_alive  ?  "  IsAlive "  :  " " ,  is_active  ?  "  IsActive "  :  " " ,   
			
		
	
		
			
				
					            node - > WantLockSizeOnce  ?  "  WantLockSizeOnce "  :  " " ) ;   
			
		
	
		
			
				
					        if  ( TreeNode ( " flags " ,  " LocalFlags: 0x%04X SharedFlags : 0x%04X" ,  node - > LocalFlags ,  node - > SharedFlags ) )   
			
		
	
		
			
				
					        if  ( TreeNode ( " flags " ,  " Flags Merged: 0x%04X, Local: 0x%04X, InWindows: 0x%04X, Shared : 0x%04X" ,  node - > MergedFlags ,  node - > LocalFlags ,  node - > LocalFlagsInWindow s ,  node - > SharedFlags ) )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            DebugNodeDockNodeFlags ( & node - > LocalFlags ,  " LocalFlags " ,  true ) ;   
			
		
	
		
			
				
					            if  ( BeginTable ( " flags " ,  4 ) )   
			
		
	
		
			
				
					            {   
			
		
	
		
			
				
					                TableNextColumn ( ) ;  DebugNodeDockNodeFlags ( & node - > MergedFlags ,  " MergedFlags " ,  false ) ;   
			
		
	
		
			
				
					                TableNextColumn ( ) ;  DebugNodeDockNodeFlags ( & node - > LocalFlags ,  " LocalFlags " ,  true ) ;   
			
		
	
		
			
				
					                TableNextColumn ( ) ;  DebugNodeDockNodeFlags ( & node - > LocalFlagsInWindows ,  " LocalFlagsInWindows " ,  false ) ;   
			
		
	
		
			
				
					                TableNextColumn ( ) ;  DebugNodeDockNodeFlags ( & node - > SharedFlags ,  " SharedFlags " ,  true ) ;   
			
		
	
		
			
				
					                EndTable ( ) ;   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					            TreePop ( ) ;   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					        if  ( node - > ParentNode )