@ -4242,17 +4242,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > SizeContents . x  =  ( float ) ( int ) ( ( window - > SizeContentsExplicit . x  ! =  0.0f )  ?  window - > SizeContentsExplicit . x  :  ( ( window_is_new  ?  0.0f  :  window - > DC . CursorMaxPos . x  -  window - > Pos . x )  +  window - > Scroll . x ) ) ;   
					 
					 
					 
					        window - > SizeContents . x  =  ( float ) ( int ) ( ( window - > SizeContentsExplicit . x  ! =  0.0f )  ?  window - > SizeContentsExplicit . x  :  ( ( window_is_new  ?  0.0f  :  window - > DC . CursorMaxPos . x  -  window - > Pos . x )  +  window - > Scroll . x ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > SizeContents . y  =  ( float ) ( int ) ( ( window - > SizeContentsExplicit . y  ! =  0.0f )  ?  window - > SizeContentsExplicit . y  :  ( ( window_is_new  ?  0.0f  :  window - > DC . CursorMaxPos . y  -  window - > Pos . y )  +  window - > Scroll . y ) ) ;   
					 
					 
					 
					        window - > SizeContents . y  =  ( float ) ( int ) ( ( window - > SizeContentsExplicit . y  ! =  0.0f )  ?  window - > SizeContentsExplicit . y  :  ( ( window_is_new  ?  0.0f  :  window - > DC . CursorMaxPos . y  -  window - > Pos . y )  +  window - > Scroll . y ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // Update scrollbar status based on the Size that was effective during last frame (and not the upcoming Size which we are updating below), so that user code consuming exactly the available size won't trigger scrollbars when e.g. manually resizing.
   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( ! window - > Collapsed )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        {   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > ScrollbarY  =  ( flags  &  ImGuiWindowFlags_AlwaysVerticalScrollbar )  | |  ( ( window - > SizeContents . y  >  window - > SizeFull . y  +  style . ItemSpacing . y )  & &  ! ( flags  &  ImGuiWindowFlags_NoScrollbar ) ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > ScrollbarX  =  ( flags  &  ImGuiWindowFlags_AlwaysHorizontalScrollbar )  | |  ( ( window - > SizeContents . x  >  window - > SizeFull . x  -  ( window - > ScrollbarY  ?  style . ScrollbarSize  :  0.0f )  -  window - > WindowPadding . x )  & &  ! ( flags  &  ImGuiWindowFlags_NoScrollbar )  & &  ( flags  &  ImGuiWindowFlags_HorizontalScrollbar ) ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  ( window - > ScrollbarX  & &  ! window - > ScrollbarY )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                window - > ScrollbarY  =  ( window - > SizeContents . y  >  window - > SizeFull . y  +  style . ItemSpacing . y  -  style . ScrollbarSize )  & &  ! ( flags  &  ImGuiWindowFlags_NoScrollbar ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > ScrollbarSizes  =  ImVec2 ( window - > ScrollbarY  ?  style . ScrollbarSize  :  0.0f ,  window - > ScrollbarX  ?  style . ScrollbarSize  :  0.0f ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > BorderSize  =  ( flags  &  ImGuiWindowFlags_ShowBorders )  ?  1.0f  :  0.0f ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        }   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // Hide popup/tooltip window when first appearing while we measure size (because we recycle them)
   
					 
					 
					 
					        // Hide popup/tooltip window when first appearing while we measure size (because we recycle them)
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( window - > HiddenFrames  >  0 )   
					 
					 
					 
					        if  ( window - > HiddenFrames  >  0 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > HiddenFrames - - ;   
					 
					 
					 
					            window - > HiddenFrames - - ;   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -4303,6 +4292,21 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // Apply minimum/maximum window size constraints and final size
   
					 
					 
					 
					        // Apply minimum/maximum window size constraints and final size
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > SizeFull  =  CalcSizeFullWithConstraint ( window ,  window - > SizeFull ) ;   
					 
					 
					 
					        window - > SizeFull  =  CalcSizeFullWithConstraint ( window ,  window - > SizeFull ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > Size  =  window - > Collapsed  ?  window - > TitleBarRect ( ) . GetSize ( )  :  window - > SizeFull ;   
					 
					 
					 
					        window - > Size  =  window - > Collapsed  ?  window - > TitleBarRect ( ) . GetSize ( )  :  window - > SizeFull ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        if  ( ( flags  &  ImGuiWindowFlags_ChildWindow )  & &  ! ( flags  &  ImGuiWindowFlags_Popup ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            window - > Size  =  window - > SizeFull ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        // SCROLLBAR STATUS
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        // Update scrollbar status (based on the Size that was effective during last frame or the auto-resized Size). We need to do this before manual resize (below) is effective.
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        if  ( ! window - > Collapsed )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            window - > ScrollbarY  =  ( flags  &  ImGuiWindowFlags_AlwaysVerticalScrollbar )  | |  ( ( window - > SizeContents . y  >  window - > SizeFull . y  +  style . ItemSpacing . y )  & &  ! ( flags  &  ImGuiWindowFlags_NoScrollbar ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            window - > ScrollbarX  =  ( flags  &  ImGuiWindowFlags_AlwaysHorizontalScrollbar )  | |  ( ( window - > SizeContents . x  >  window - > SizeFull . x  -  ( window - > ScrollbarY  ?  style . ScrollbarSize  :  0.0f )  -  window - > WindowPadding . x )  & &  ! ( flags  &  ImGuiWindowFlags_NoScrollbar )  & &  ( flags  &  ImGuiWindowFlags_HorizontalScrollbar ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            if  ( window - > ScrollbarX  & &  ! window - > ScrollbarY )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                window - > ScrollbarY  =  ( window - > SizeContents . y  >  window - > SizeFull . y  +  style . ItemSpacing . y  -  style . ScrollbarSize )  & &  ! ( flags  &  ImGuiWindowFlags_NoScrollbar ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            window - > ScrollbarSizes  =  ImVec2 ( window - > ScrollbarY  ?  style . ScrollbarSize  :  0.0f ,  window - > ScrollbarX  ?  style . ScrollbarSize  :  0.0f ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            window - > BorderSize  =  ( flags  &  ImGuiWindowFlags_ShowBorders )  ?  1.0f  :  0.0f ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // POSITION
   
					 
					 
					 
					        // POSITION
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -4316,7 +4320,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        {   
					 
					 
					 
					        {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            IM_ASSERT ( window_size_set_by_api ) ;  // Submitted by BeginChild()
   
					 
					 
					 
					            IM_ASSERT ( window_size_set_by_api ) ;  // Submitted by BeginChild()
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > Pos  =  window - > PosFloat  =  parent_window - > DC . CursorPos ;   
					 
					 
					 
					            window - > Pos  =  window - > PosFloat  =  parent_window - > DC . CursorPos ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > Size  =  window - > SizeFull ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        }   
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        const  bool  window_pos_with_pivot  =  ( window - > SetWindowPosVal . x  ! =  FLT_MAX  & &  window - > HiddenFrames  = =  0 ) ;   
					 
					 
					 
					        const  bool  window_pos_with_pivot  =  ( window - > SetWindowPosVal . x  ! =  FLT_MAX  & &  window - > HiddenFrames  = =  0 ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -4485,6 +4488,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > ContentsRegionRect . Max . y  =  - window - > Scroll . y  -  window - > WindowPadding . y  +  ( window - > SizeContentsExplicit . y  ! =  0.0f  ?  window - > SizeContentsExplicit . y  :  ( window - > Size . y  -  window - > ScrollbarSizes . y ) ) ;  
  
					 
					 
					 
					        window - > ContentsRegionRect . Max . y  =  - window - > Scroll . y  -  window - > WindowPadding . y  +  ( window - > SizeContentsExplicit . y  ! =  0.0f  ?  window - > SizeContentsExplicit . y  :  ( window - > Size . y  -  window - > ScrollbarSizes . y ) ) ;  
  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // Setup drawing context
   
					 
					 
					 
					        // Setup drawing context
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        // (NB: That term "drawing context / DC" lost its meaning a long time ago. Initially was meant to hold transient data only. Nowadays difference between window-> and window->DC-> is dubious.)
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > DC . IndentX  =  0.0f  +  window - > WindowPadding . x  -  window - > Scroll . x ;   
					 
					 
					 
					        window - > DC . IndentX  =  0.0f  +  window - > WindowPadding . x  -  window - > Scroll . x ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > DC . GroupOffsetX  =  0.0f ;   
					 
					 
					 
					        window - > DC . GroupOffsetX  =  0.0f ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > DC . ColumnsOffsetX  =  0.0f ;   
					 
					 
					 
					        window - > DC . ColumnsOffsetX  =  0.0f ;