@ -2237,6 +2237,7 @@ void ImGuiListClipper::Begin(int items_count, float items_height) 
			
		
	
		
			
				
					    StartPosY  =  window - > DC . CursorPos . y ;   
			
		
	
		
			
				
					    ItemsHeight  =  items_height ;   
			
		
	
		
			
				
					    ItemsCount  =  items_count ;   
			
		
	
		
			
				
					    ItemsFrozen  =  0 ;   
			
		
	
		
			
				
					    StepNo  =  0 ;   
			
		
	
		
			
				
					    DisplayStart  =  - 1 ;   
			
		
	
		
			
				
					    DisplayEnd  =  0 ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2249,7 +2250,7 @@ void ImGuiListClipper::End() 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // In theory here we should assert that ImGui::GetCursorPosY() == StartPosY + DisplayEnd * ItemsHeight, but it feels saner to just seek at the end and not assert/crash the user.
   
			
		
	
		
			
				
					    if  ( ItemsCount  <  INT_MAX  & &  DisplayStart  > =  0 )   
			
		
	
		
			
				
					        SetCursorPosYAndSetupForPrevLine ( StartPosY  +  ItemsCount  *  ItemsHeight ,  ItemsHeight ) ;   
			
		
	
		
			
				
					        SetCursorPosYAndSetupForPrevLine ( StartPosY  +  ( ItemsCount  -  ItemsFrozen )   *  ItemsHeight ,  ItemsHeight ) ;   
			
		
	
		
			
				
					    ItemsCount  =  - 1 ;   
			
		
	
		
			
				
					    StepNo  =  3 ;   
			
		
	
		
			
				
					}  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2273,12 +2274,22 @@ bool ImGuiListClipper::Step() 
			
		
	
		
			
				
					    // Step 0: Let you process the first element (regardless of it being visible or not, so we can measure the element height)
   
			
		
	
		
			
				
					    if  ( StepNo  = =  0 )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        // While we are in frozen row state, keep displaying items one by one, unclipped
   
			
		
	
		
			
				
					        // FIXME: Could be stored as a table-agnostic state.
   
			
		
	
		
			
				
					        if  ( table  ! =  NULL  & &  ! table - > IsFreezeRowsPassed )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            DisplayStart  =  ItemsFrozen ;   
			
		
	
		
			
				
					            DisplayEnd  =  ItemsFrozen  +  1 ;   
			
		
	
		
			
				
					            ItemsFrozen + + ;   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        StartPosY  =  window - > DC . CursorPos . y ;   
			
		
	
		
			
				
					        if  ( ItemsHeight  < =  0.0f )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            // Submit the first item so we can measure its height (generally it is 0..1)
   
			
		
	
		
			
				
					            DisplayStart  =  0 ;   
			
		
	
		
			
				
					            DisplayEnd  =  1 ;   
			
		
	
		
			
				
					            DisplayStart  =  ItemsFrozen ;   
			
		
	
		
			
				
					            DisplayEnd  =  ItemsFrozen  +  1 ;   
			
		
	
		
			
				
					            StepNo  =  1 ;   
			
		
	
		
			
				
					            return  true ;   
			
		
	
		
			
				
					        }   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2319,7 +2330,7 @@ bool ImGuiListClipper::Step() 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Seek cursor
   
			
		
	
		
			
				
					        if  ( DisplayStart  >  already_submitted )   
			
		
	
		
			
				
					            SetCursorPosYAndSetupForPrevLine ( StartPosY  +  DisplayStart  *  ItemsHeight ,  ItemsHeight ) ;   
			
		
	
		
			
				
					            SetCursorPosYAndSetupForPrevLine ( StartPosY  +  ( DisplayStart  -  ItemsFrozen )   *  ItemsHeight ,  ItemsHeight ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        StepNo  =  3 ;   
			
		
	
		
			
				
					        return  true ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2331,7 +2342,7 @@ bool ImGuiListClipper::Step() 
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        // Seek cursor
   
			
		
	
		
			
				
					        if  ( ItemsCount  <  INT_MAX )   
			
		
	
		
			
				
					            SetCursorPosYAndSetupForPrevLine ( StartPosY  +  ItemsCount  *  ItemsHeight ,  ItemsHeight ) ;  // advance cursor
   
			
		
	
		
			
				
					            SetCursorPosYAndSetupForPrevLine ( StartPosY  +  ( ItemsCount  -  ItemsFrozen )   *  ItemsHeight ,  ItemsHeight ) ;  // advance cursor
   
			
		
	
		
			
				
					        ItemsCount  =  - 1 ;   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					    }