@ -4001,13 +4001,21 @@ bool ImGui::IsWindowContentHoverable(ImGuiWindow* window, ImGuiHoveredFlags flag 
			
		
	
		
			
				
					static  inline  float  CalcDelayFromHoveredFlags ( ImGuiHoveredFlags  flags )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
			
				
					    if  ( flags  &  ImGuiHoveredFlags_DelayShort )   
			
		
	
		
			
				
					        return  g . Style . HoverDelayShort ;   
			
		
	
		
			
				
					    if  ( flags  &  ImGuiHoveredFlags_DelayNormal )   
			
		
	
		
			
				
					        return  g . Style . HoverDelayNormal ;   
			
		
	
		
			
				
					    if  ( flags  &  ImGuiHoveredFlags_DelayShort )   
			
		
	
		
			
				
					        return  g . Style . HoverDelayShort ;   
			
		
	
		
			
				
					    return  0.0f ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					static  ImGuiHoveredFlags  ApplyHoverFlagsForTooltip ( ImGuiHoveredFlags  user_flags ,  ImGuiHoveredFlags  shared_flags )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    // Allow instance flags to override shared flags
   
			
		
	
		
			
				
					    if  ( user_flags  &  ( ImGuiHoveredFlags_DelayNone  |  ImGuiHoveredFlags_DelayShort  |  ImGuiHoveredFlags_DelayNormal ) )   
			
		
	
		
			
				
					        shared_flags  & =  ~ ( ImGuiHoveredFlags_DelayNone  |  ImGuiHoveredFlags_DelayShort  |  ImGuiHoveredFlags_DelayNormal ) ;   
			
		
	
		
			
				
					    return  user_flags  |  shared_flags ;   
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// This is roughly matching the behavior of internal-facing ItemHoverable()
  
			
		
	
		
			
				
					// - we allow hovering to be true when ActiveId==window->MoveID, so that clicking on non-interactive items such as a Text() item still returns true with IsItemHovered()
  
			
		
	
		
			
				
					// - this should work even for non-interactive items that have no ID, so we cannot use LastItemId
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -4025,7 +4033,7 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags) 
			
		
	
		
			
				
					            return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( flags  &  ImGuiHoveredFlags_ForTooltip )   
			
		
	
		
			
				
					            flags  | = g . Style . HoverFlagsForTooltipNav ;   
			
		
	
		
			
				
					            flags  =  ApplyHoverFlagsForTooltip ( flags , g . Style . HoverFlagsForTooltipNav ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    else   
			
		
	
		
			
				
					    {   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -4035,7 +4043,7 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags) 
			
		
	
		
			
				
					            return  false ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( flags  &  ImGuiHoveredFlags_ForTooltip )   
			
		
	
		
			
				
					            flags  | = g . Style . HoverFlagsForTooltipMouse ;   
			
		
	
		
			
				
					            flags  =  ApplyHoverFlagsForTooltip ( flags , g . Style . HoverFlagsForTooltipMouse ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        IM_ASSERT ( ( flags  &  ( ImGuiHoveredFlags_AnyWindow  |  ImGuiHoveredFlags_RootWindow  |  ImGuiHoveredFlags_ChildWindows  |  ImGuiHoveredFlags_NoPopupHierarchy ) )  = =  0 ) ;    // Flags not supported by this function
   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5423,7 +5431,6 @@ bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, b 
			
		
	
		
			
				
					    // Size
   
			
		
	
		
			
				
					    const  ImVec2  content_avail  =  GetContentRegionAvail ( ) ;   
			
		
	
		
			
				
					    ImVec2  size  =  ImTrunc ( size_arg ) ;   
			
		
	
		
			
				
					    const  int  auto_fit_axises  =  ( ( size . x  = =  0.0f )  ?  ( 1  < <  ImGuiAxis_X )  :  0x00 )  |  ( ( size . y  = =  0.0f )  ?  ( 1  < <  ImGuiAxis_Y )  :  0x00 ) ;   
			
		
	
		
			
				
					    if  ( size . x  < =  0.0f )   
			
		
	
		
			
				
					        size . x  =  ImMax ( content_avail . x  +  size . x ,  4.0f ) ;  // Arbitrary minimum child size (0.0f causing too many issues)
   
			
		
	
		
			
				
					    if  ( size . y  < =  0.0f )   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -7371,7 +7378,7 @@ bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags) 
			
		
	
		
			
				
					    // for different windows of the hierarchy. Possibly need a Hash(Current+Flags) ==> (Timer) cache.
   
			
		
	
		
			
				
					    // We can implement this for _Stationary because the data is linked to HoveredWindow rather than CurrentWindow.
   
			
		
	
		
			
				
					    if  ( flags  &  ImGuiHoveredFlags_ForTooltip )   
			
		
	
		
			
				
					        flags  | = g . Style . HoverFlagsForTooltipMouse ;   
			
		
	
		
			
				
					        flags  =  ApplyHoverFlagsForTooltip ( flags , g . Style . HoverFlagsForTooltipMouse ) ;   
			
		
	
		
			
				
					    if  ( ( flags  &  ImGuiHoveredFlags_Stationary )  ! =  0  & &  g . HoverWindowUnlockedStationaryId  ! =  ref_window - > ID )   
			
		
	
		
			
				
					        return  false ;