@ -1969,12 +1969,12 @@ void ImGui::ItemSize(const ImRect& bb, float text_offset_y) 
			
		
	
		
			
				
					// Declare item bounding box for clipping and interaction.
  
			
		
	
		
			
				
					// Note that the size can be different than the one provided to ItemSize(). Typically, widgets that spread over available surface
  
			
		
	
		
			
				
					// declares their minimum size requirement to ItemSize() and then use a larger region for drawing/interaction, which is passed to ItemAdd().
  
			
		
	
		
			
				
					bool  ImGui : : ItemAdd ( const  ImRect &  bb ,  const  ImGuiID * id )  
			
		
	
		
			
				
					bool  ImGui : : ItemAdd ( const  ImRect &  bb ,  ImGuiID  id )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
			
				
					    ImGuiWindow *  window  =  g . CurrentWindow ;   
			
		
	
		
			
				
					    const  bool  is_clipped  =  IsClippedEx ( bb ,  id ,  false ) ;   
			
		
	
		
			
				
					    window - > DC . LastItemId  =  id  ?  * id  :  0  ;   
			
		
	
		
			
				
					    window - > DC . LastItemId  =  id ;   
			
		
	
		
			
				
					    window - > DC . LastItemRect  =  bb ;   
			
		
	
		
			
				
					    window - > DC . LastItemRectHoveredRect  =  false ;   
			
		
	
		
			
				
					    if  ( is_clipped )   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2031,12 +2031,12 @@ bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id) 
			
		
	
		
			
				
					    return  true ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					bool  ImGui : : IsClippedEx ( const  ImRect &  bb ,  const  ImGuiID * id ,  bool  clip_even_when_logged )  
			
		
	
		
			
				
					bool  ImGui : : IsClippedEx ( const  ImRect &  bb ,  ImGuiID  id ,  bool  clip_even_when_logged )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
			
				
					    ImGuiWindow *  window  =  g . CurrentWindow ;   
			
		
	
		
			
				
					    if  ( ! bb . Overlaps ( window - > ClipRect ) )   
			
		
	
		
			
				
					        if  ( ! id | |  * id  ! =  g . ActiveId )   
			
		
	
		
			
				
					        if  ( id  = =  0 | |  id  ! =  g . ActiveId )   
			
		
	
		
			
				
					            if  ( clip_even_when_logged  | |  ! g . LogEnabled )   
			
		
	
		
			
				
					                return  true ;   
			
		
	
		
			
				
					    return  false ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -3790,7 +3790,7 @@ void ImGui::EndChild() 
			
		
	
		
			
				
					        ImGuiWindow *  parent_window  =  GetCurrentWindow ( ) ;   
			
		
	
		
			
				
					        ImRect  bb ( parent_window - > DC . CursorPos ,  parent_window - > DC . CursorPos  +  sz ) ;   
			
		
	
		
			
				
					        ItemSize ( sz ) ;   
			
		
	
		
			
				
					        ItemAdd ( bb ,  NULL ) ;   
			
		
	
		
			
				
					        ItemAdd ( bb ,  0 ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5598,7 +5598,7 @@ void ImGui::TextUnformatted(const char* text, const char* text_end) 
			
		
	
		
			
				
					                while  ( line  <  text_end )   
			
		
	
		
			
				
					                {   
			
		
	
		
			
				
					                    const  char *  line_end  =  strchr ( line ,  ' \n ' ) ;   
			
		
	
		
			
				
					                    if  ( IsClippedEx ( line_rect ,  NULL ,  false ) )   
			
		
	
		
			
				
					                    if  ( IsClippedEx ( line_rect ,  0 ,  false ) )   
			
		
	
		
			
				
					                        break ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                    const  ImVec2  line_size  =  CalcTextSize ( line ,  line_end ,  false ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5630,7 +5630,7 @@ void ImGui::TextUnformatted(const char* text, const char* text_end) 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        ImRect  bb ( text_pos ,  text_pos  +  text_size ) ;   
			
		
	
		
			
				
					        ItemSize ( bb ) ;   
			
		
	
		
			
				
					        ItemAdd ( bb ,  NULL ) ;   
			
		
	
		
			
				
					        ItemAdd ( bb ,  0 ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    else   
			
		
	
		
			
				
					    {   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -5640,7 +5640,7 @@ void ImGui::TextUnformatted(const char* text, const char* text_end) 
			
		
	
		
			
				
					        // Account of baseline offset
   
			
		
	
		
			
				
					        ImRect  bb ( text_pos ,  text_pos  +  text_size ) ;   
			
		
	
		
			
				
					        ItemSize ( text_size ) ;   
			
		
	
		
			
				
					        if  ( ! ItemAdd ( bb ,  NULL ) )   
			
		
	
		
			
				
					        if  ( ! ItemAdd ( bb ,  0 ) )   
			
		
	
		
			
				
					            return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // Render (we don't hide text after ## in this end-user function)
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5674,7 +5674,7 @@ void ImGui::LabelTextV(const char* label, const char* fmt, va_list args) 
			
		
	
		
			
				
					    const  ImRect  value_bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  ImVec2 ( w ,  label_size . y  +  style . FramePadding . y * 2 ) ) ;   
			
		
	
		
			
				
					    const  ImRect  total_bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  ImVec2 ( w  +  ( label_size . x  >  0.0f  ?  style . ItemInnerSpacing . x  :  0.0f ) ,  style . FramePadding . y * 2 )  +  label_size ) ;   
			
		
	
		
			
				
					    ItemSize ( total_bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  0 ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Render
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5799,7 +5799,7 @@ bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  ImRect  bb ( pos ,  pos  +  size ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( window - > DC . ItemFlags  &  ImGuiItemFlags_ButtonRepeat )  flags  | =  ImGuiButtonFlags_Repeat ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5846,7 +5846,7 @@ bool ImGui::InvisibleButton(const char* str_id, const ImVec2& size_arg) 
			
		
	
		
			
				
					    ImVec2  size  =  CalcItemSize ( size_arg ,  0.0f ,  0.0f ) ;   
			
		
	
		
			
				
					    const  ImRect  bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  size ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    bool  hovered ,  held ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5890,7 +5890,7 @@ void ImGui::Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& 
			
		
	
		
			
				
					    if  ( border_col . w  >  0.0f )   
			
		
	
		
			
				
					        bb . Max  + =  ImVec2 ( 2 , 2 ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  0 ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( border_col . w  >  0.0f )   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5927,7 +5927,7 @@ bool ImGui::ImageButton(ImTextureID user_texture_id, const ImVec2& size, const I 
			
		
	
		
			
				
					    const  ImRect  bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  size  +  padding * 2 ) ;   
			
		
	
		
			
				
					    const  ImRect  image_bb ( window - > DC . CursorPos  +  padding ,  window - > DC . CursorPos  +  padding  +  size ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    bool  hovered ,  held ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -6129,7 +6129,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l 
			
		
	
		
			
				
					    // (Ideally we'd want to add a flag for the user to specify we want want the hit test to be done up to the right side of the content or not)
   
			
		
	
		
			
				
					    const  ImRect  interact_bb  =  display_frame  ?  bb  :  ImRect ( bb . Min . x ,  bb . Min . y ,  bb . Min . x  +  text_width  +  style . ItemSpacing . x * 2 ,  bb . Max . y ) ;   
			
		
	
		
			
				
					    bool  is_open  =  TreeNodeBehaviorIsOpen ( id ,  flags ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( interact_bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( interact_bb ,  id ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        if  ( is_open  & &  ! ( flags  &  ImGuiTreeNodeFlags_NoTreePushOnOpen ) )   
			
		
	
		
			
				
					            TreePushRawID ( id ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -6399,7 +6399,7 @@ void ImGui::Bullet() 
			
		
	
		
			
				
					    const  float  line_height  =  ImMax ( ImMin ( window - > DC . CurrentLineHeight ,  g . FontSize  +  g . Style . FramePadding . y * 2 ) ,  g . FontSize ) ;   
			
		
	
		
			
				
					    const  ImRect  bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  ImVec2 ( g . FontSize ,  line_height ) ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  0 ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        SameLine ( 0 ,  style . FramePadding . x * 2 ) ;   
			
		
	
		
			
				
					        return ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -6427,7 +6427,7 @@ void ImGui::BulletTextV(const char* fmt, va_list args) 
			
		
	
		
			
				
					    const  float  line_height  =  ImMax ( ImMin ( window - > DC . CurrentLineHeight ,  g . FontSize  +  g . Style . FramePadding . y * 2 ) ,  g . FontSize ) ;   
			
		
	
		
			
				
					    const  ImRect  bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  ImVec2 ( g . FontSize  +  ( label_size . x  >  0.0f  ?  ( label_size . x  +  style . FramePadding . x * 2 )  :  0.0f ) ,  ImMax ( line_height ,  label_size . y ) ) ) ;   // Empty text doesn't add padding
   
			
		
	
		
			
				
					    ItemSize ( bb ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  0 ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Render
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -6783,7 +6783,7 @@ bool ImGui::SliderFloat(const char* label, float* v, float v_min, float v_max, c 
			
		
	
		
			
				
					    const  ImRect  total_bb ( frame_bb . Min ,  frame_bb . Max  +  ImVec2 ( label_size . x  >  0.0f  ?  style . ItemInnerSpacing . x  +  label_size . x  :  0.0f ,  0.0f ) ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // NB- we don't call ItemSize() yet because we may turn into a text edit box below
   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  id ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        ItemSize ( total_bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					        return  false ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -6840,7 +6840,7 @@ bool ImGui::VSliderFloat(const char* label, const ImVec2& size, float* v, float 
			
		
	
		
			
				
					    const  ImRect  bb ( frame_bb . Min ,  frame_bb . Max  +  ImVec2 ( label_size . x  >  0.0f  ?  style . ItemInnerSpacing . x  +  label_size . x  :  0.0f ,  0.0f ) ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    ItemSize ( bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( frame_bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( frame_bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					    const  bool  hovered  =  ItemHoverable ( frame_bb ,  id ) ;   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -7078,7 +7078,7 @@ bool ImGui::DragFloat(const char* label, float* v, float v_speed, float v_min, f 
			
		
	
		
			
				
					    const  ImRect  total_bb ( frame_bb . Min ,  frame_bb . Max  +  ImVec2 ( label_size . x  >  0.0f  ?  style . ItemInnerSpacing . x  +  label_size . x  :  0.0f ,  0.0f ) ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // NB- we don't call ItemSize() yet because we may turn into a text edit box below
   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  id ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        ItemSize ( total_bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					        return  false ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -7284,7 +7284,7 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge 
			
		
	
		
			
				
					    const  ImRect  inner_bb ( frame_bb . Min  +  style . FramePadding ,  frame_bb . Max  -  style . FramePadding ) ;   
			
		
	
		
			
				
					    const  ImRect  total_bb ( frame_bb . Min ,  frame_bb . Max  +  ImVec2 ( label_size . x  >  0.0f  ?  style . ItemInnerSpacing . x  +  label_size . x  :  0.0f ,  0 ) ) ;   
			
		
	
		
			
				
					    ItemSize ( total_bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  0 ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					    const  bool  hovered  =  ItemHoverable ( inner_bb ,  0 ) ;   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -7424,7 +7424,7 @@ void ImGui::ProgressBar(float fraction, const ImVec2& size_arg, const char* over 
			
		
	
		
			
				
					    ImVec2  pos  =  window - > DC . CursorPos ;   
			
		
	
		
			
				
					    ImRect  bb ( pos ,  pos  +  CalcItemSize ( size_arg ,  CalcItemWidth ( ) ,  g . FontSize  +  style . FramePadding . y * 2.0f ) ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  0 ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Render
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -7471,7 +7471,7 @@ bool ImGui::Checkbox(const char* label, bool* v) 
			
		
	
		
			
				
					        total_bb  =  ImRect ( ImMin ( check_bb . Min ,  text_bb . Min ) ,  ImMax ( check_bb . Max ,  text_bb . Max ) ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    bool  hovered ,  held ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -7534,7 +7534,7 @@ bool ImGui::RadioButton(const char* label, bool active) 
			
		
	
		
			
				
					        total_bb . Add ( text_bb ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    ImVec2  center  =  check_bb . GetCenter ( ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -7872,7 +7872,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2 
			
		
	
		
			
				
					    else   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        ItemSize ( total_bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					        if  ( ! ItemAdd ( total_bb ,  & id ) )   
			
		
	
		
			
				
					        if  ( ! ItemAdd ( total_bb ,  id ) )   
			
		
	
		
			
				
					            return  false ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    const  bool  hovered  =  ItemHoverable ( frame_bb ,  id ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -8657,7 +8657,7 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImVec2 popu 
			
		
	
		
			
				
					    const  ImRect  frame_bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  ImVec2 ( w ,  label_size . y  +  style . FramePadding . y * 2.0f ) ) ;   
			
		
	
		
			
				
					    const  ImRect  total_bb ( frame_bb . Min ,  frame_bb . Max  +  ImVec2 ( label_size . x  >  0.0f  ?  style . ItemInnerSpacing . x  +  label_size . x  :  0.0f ,  0.0f ) ) ;   
			
		
	
		
			
				
					    ItemSize ( total_bb ,  style . FramePadding . y ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( total_bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  float  arrow_size  =  SmallSquareSize ( ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -8806,7 +8806,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl 
			
		
	
		
			
				
					    bb_with_spacing . Min . y  - =  spacing_U ;   
			
		
	
		
			
				
					    bb_with_spacing . Max . x  + =  spacing_R ;   
			
		
	
		
			
				
					    bb_with_spacing . Max . y  + =  spacing_D ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb_with_spacing ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb_with_spacing ,  id ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        if  ( ( flags  &  ImGuiSelectableFlags_SpanAllColumns )  & &  window - > DC . ColumnsCount  >  1 )   
			
		
	
		
			
				
					            PushColumnClipRect ( ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -9271,7 +9271,7 @@ bool ImGui::ColorButton(const char* desc_id, const ImVec4& col, ImGuiColorEditFl 
			
		
	
		
			
				
					        size . y  =  default_size ;   
			
		
	
		
			
				
					    const  ImRect  bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  size ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  & id ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  id ) )   
			
		
	
		
			
				
					        return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    bool  hovered ,  held ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -9940,7 +9940,7 @@ void ImGui::Separator() 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  ImRect  bb ( ImVec2 ( x1 ,  window - > DC . CursorPos . y ) ,  ImVec2 ( x2 ,  window - > DC . CursorPos . y + 1.0f ) ) ;   
			
		
	
		
			
				
					    ItemSize ( ImVec2 ( 0.0f ,  0.0f ) ) ;  // NB: we don't provide our width so that it doesn't get feed back into AutoFit, we don't provide height to not alter layout.
   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  0 ) )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        if  ( window - > DC . ColumnsCount  >  1 )   
			
		
	
		
			
				
					            PushColumnClipRect ( ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -9970,7 +9970,7 @@ void ImGui::VerticalSeparator() 
			
		
	
		
			
				
					    float  y2  =  window - > DC . CursorPos . y  +  window - > DC . CurrentLineHeight ;  
  
			
		
	
		
			
				
					    const  ImRect  bb ( ImVec2 ( window - > DC . CursorPos . x ,  y1 ) ,  ImVec2 ( window - > DC . CursorPos . x  +  1.0f ,  y2 ) ) ;   
			
		
	
		
			
				
					    ItemSize ( ImVec2 ( bb . GetWidth ( ) ,  0.0f ) ) ;   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  NULL ) )   
			
		
	
		
			
				
					    if  ( ! ItemAdd ( bb ,  0 ) )   
			
		
	
		
			
				
					        return ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    window - > DrawList - > AddLine ( ImVec2 ( bb . Min . x ,  bb . Min . y ) ,  ImVec2 ( bb . Min . x ,  bb . Max . y ) ,  GetColorU32 ( ImGuiCol_Separator ) ) ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -9994,7 +9994,7 @@ void ImGui::Dummy(const ImVec2& size) 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  ImRect  bb ( window - > DC . CursorPos ,  window - > DC . CursorPos  +  size ) ;   
			
		
	
		
			
				
					    ItemSize ( bb ) ;   
			
		
	
		
			
				
					    ItemAdd ( bb ,  NULL ) ;   
			
		
	
		
			
				
					    ItemAdd ( bb ,  0 ) ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					bool  ImGui : : IsRectVisible ( const  ImVec2 &  size )  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -10058,7 +10058,7 @@ void ImGui::EndGroup() 
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        window - > DC . CurrentLineTextBaseOffset  =  ImMax ( window - > DC . PrevLineTextBaseOffset ,  group_data . BackupCurrentLineTextBaseOffset ) ;       // FIXME: Incorrect, we should grab the base offset from the *first line* of the group but it is hard to obtain now.
   
			
		
	
		
			
				
					        ItemSize ( group_bb . GetSize ( ) ,  group_data . BackupCurrentLineTextBaseOffset ) ;   
			
		
	
		
			
				
					        ItemAdd ( group_bb ,  NULL ) ;   
			
		
	
		
			
				
					        ItemAdd ( group_bb ,  0 ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // If the current ActiveId was declared within the boundary of our group, we copy it to LastItemId so IsItemActive() will be functional on the entire group.
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -10344,7 +10344,7 @@ void ImGui::EndColumns() 
			
		
	
		
			
				
					            const  ImGuiID  column_id  =  window - > DC . ColumnsSetId  +  ImGuiID ( i ) ;   
			
		
	
		
			
				
					            const  float  column_w  =  4.0f ;  // Width for interaction
   
			
		
	
		
			
				
					            const  ImRect  column_rect ( ImVec2 ( x  -  column_w ,  y1 ) ,  ImVec2 ( x  +  column_w ,  y2 ) ) ;   
			
		
	
		
			
				
					            if  ( IsClippedEx ( column_rect ,  & column_id ,  false ) )   
			
		
	
		
			
				
					            if  ( IsClippedEx ( column_rect ,  column_id ,  false ) )   
			
		
	
		
			
				
					                continue ;   
			
		
	
		
			
				
					            
  
			
		
	
		
			
				
					            bool  hovered  =  false ,  held  =  false ;