@ -2035,13 +2035,14 @@ bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    const  bool  is_clipped  =  IsClippedEx ( bb ,  id ,  false ) ;   
					 
					 
					 
					    const  bool  is_clipped  =  IsClippedEx ( bb ,  id ,  false ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    window - > DC . LastItemId  =  id ;   
					 
					 
					 
					    window - > DC . LastItemId  =  id ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    window - > DC . LastItemRect  =  bb ;   
					 
					 
					 
					    window - > DC . LastItemRect  =  bb ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    window - > DC . LastItemRectHoveredRect  =  false  ;   
					 
					 
					 
					    window - > DC . LastItemStatusFlags  =  0  ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( is_clipped )   
					 
					 
					 
					    if  ( is_clipped )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        return  false ;   
					 
					 
					 
					        return  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    //if (g.IO.KeyAlt) window->DrawList->AddRect(bb.Min, bb.Max, IM_COL32(255,255,0,120)); // [DEBUG]
   
					 
					 
					 
					    //if (g.IO.KeyAlt) window->DrawList->AddRect(bb.Min, bb.Max, IM_COL32(255,255,0,120)); // [DEBUG]
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    // We need to calculate this now to take account of the current clipping rectangle (as items like Selectable may change them)
   
					 
					 
					 
					    // We need to calculate this now to take account of the current clipping rectangle (as items like Selectable may change them)
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    window - > DC . LastItemRectHoveredRect  =  IsMouseHoveringRect ( bb . Min ,  bb . Max ) ;   
					 
					 
					 
					    if  ( IsMouseHoveringRect ( bb . Min ,  bb . Max ) )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        window - > DC . LastItemStatusFlags  | =  ImGuiItemStatusFlags_HoveredRect ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    return  true ;   
					 
					 
					 
					    return  true ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -2054,7 +2055,7 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    ImGuiWindow *  window  =  g . CurrentWindow ;   
					 
					 
					 
					    ImGuiWindow *  window  =  g . CurrentWindow ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    // Test for bounding box overlap, as updated as ItemAdd()
   
					 
					 
					 
					    // Test for bounding box overlap, as updated as ItemAdd()
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( ! window - > DC . LastItemRectHoveredRect  )   
					 
					 
					 
					    if  ( ! ( window - > DC . LastItemStatusFlags  &  ImGuiItemStatusFlags_HoveredRect )  )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        return  false ;   
					 
					 
					 
					        return  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    IM_ASSERT ( ( flags  &  ( ImGuiHoveredFlags_RootWindow  |  ImGuiHoveredFlags_ChildWindows ) )  = =  0 ) ;    // Flags not supported by this function
   
					 
					 
					 
					    IM_ASSERT ( ( flags  &  ( ImGuiHoveredFlags_RootWindow  |  ImGuiHoveredFlags_ChildWindows ) )  = =  0 ) ;    // Flags not supported by this function
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -4970,8 +4971,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        // After Begin() we fill the last item / hovered data using the title bar data. Make that a standard behavior (to allow usage of context menus on title bar only, etc.).
   
					 
					 
					 
					        // After Begin() we fill the last item / hovered data using the title bar data. Make that a standard behavior (to allow usage of context menus on title bar only, etc.).
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > DC . LastItemId  =  window - > MoveId ;   
					 
					 
					 
					        window - > DC . LastItemId  =  window - > MoveId ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        window - > DC . LastItemStatusFlags  =  IsMouseHoveringRect ( title_bar_rect . Min ,  title_bar_rect . Max ,  false )  ?  ImGuiItemStatusFlags_HoveredRect  :  0 ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > DC . LastItemRect  =  title_bar_rect ;   
					 
					 
					 
					        window - > DC . LastItemRect  =  title_bar_rect ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        window - > DC . LastItemRectHoveredRect  =  IsMouseHoveringRect ( title_bar_rect . Min ,  title_bar_rect . Max ,  false ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    }   
					 
					 
					 
					    }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    // Inner clipping rectangle
   
					 
					 
					 
					    // Inner clipping rectangle
   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -10283,7 +10284,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    EndGroup ( ) ;   
					 
					 
					 
					    EndGroup ( ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    // Drag and Drop Target
   
					 
					 
					 
					    // Drag and Drop Target
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( window - > DC . LastItemRectHoveredRect   & &  BeginDragDropTarget ( ) )  // NB: The LastItemRectHoveredRect test is merely an optional micro-optimization 
   
					 
					 
					 
					    if  ( ( window - > DC . LastItemStatusFlags  &  ImGuiItemStatusFlags_HoveredRect )   & &  BeginDragDropTarget ( ) )  // NB: The flag test is merely an optional micro-optimization, BeginDragDropTarget() does the same test. 
   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    {   
					 
					 
					 
					    {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( const  ImGuiPayload *  payload  =  AcceptDragDropPayload ( IMGUI_PAYLOAD_TYPE_COLOR_3F ) )   
					 
					 
					 
					        if  ( const  ImGuiPayload *  payload  =  AcceptDragDropPayload ( IMGUI_PAYLOAD_TYPE_COLOR_3F ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        {   
					 
					 
					 
					        {   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -11337,7 +11338,7 @@ bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags, int mouse_button) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            // We build a throwaway ID based on current ID stack + relative AABB of items in window. 
   
					 
					 
					 
					            // We build a throwaway ID based on current ID stack + relative AABB of items in window. 
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            // THE IDENTIFIER WON'T SURVIVE ANY REPOSITIONING OF THE WIDGET, so if your widget moves your dragging operation will be canceled. 
   
					 
					 
					 
					            // THE IDENTIFIER WON'T SURVIVE ANY REPOSITIONING OF THE WIDGET, so if your widget moves your dragging operation will be canceled. 
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            // We don't need to maintain/call ClearActiveID() as releasing the button will early out this function and trigger !ActiveIdIsAlive.
   
					 
					 
					 
					            // We don't need to maintain/call ClearActiveID() as releasing the button will early out this function and trigger !ActiveIdIsAlive.
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            bool  is_hovered  =  window - > DC . LastItemRectHoveredRect  ;   
					 
					 
					 
					            bool  is_hovered  =  ( window - > DC . LastItemStatusFlags  &  ImGuiItemStatusFlags_HoveredRect )  ! =  0  ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					            if  ( ! is_hovered  & &  ( g . ActiveId  = =  0  | |  g . ActiveIdWindow  ! =  window ) )   
					 
					 
					 
					            if  ( ! is_hovered  & &  ( g . ActiveId  = =  0  | |  g . ActiveIdWindow  ! =  window ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                return  false ;   
					 
					 
					 
					                return  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            source_id  =  window - > DC . LastItemId  =  window - > GetIDFromRectangle ( window - > DC . LastItemRect ) ;   
					 
					 
					 
					            source_id  =  window - > DC . LastItemId  =  window - > GetIDFromRectangle ( window - > DC . LastItemRect ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -11388,7 +11389,7 @@ bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags, int mouse_button) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        }   
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( ! ( flags  &  ImGuiDragDropFlags_SourceNoDisableHover )  & &  ! ( flags  &  ImGuiDragDropFlags_SourceExtern ) )   
					 
					 
					 
					        if  ( ! ( flags  &  ImGuiDragDropFlags_SourceNoDisableHover )  & &  ! ( flags  &  ImGuiDragDropFlags_SourceExtern ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            window - > DC . LastItemRectHoveredRect  =  false  ;   
					 
					 
					 
					            window - > DC . LastItemStatusFlags  & =  ~ ImGuiItemStatusFlags_HoveredRect  ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        return  true ;   
					 
					 
					 
					        return  true ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    }   
					 
					 
					 
					    }   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -11485,7 +11486,7 @@ bool ImGui::BeginDragDropTarget() 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        return  false ;   
					 
					 
					 
					        return  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    ImGuiWindow *  window  =  g . CurrentWindow ;   
					 
					 
					 
					    ImGuiWindow *  window  =  g . CurrentWindow ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( ! window - > DC . LastItemRectHoveredRect  )   
					 
					 
					 
					    if  ( ! ( window - > DC . LastItemStatusFlags  &  ImGuiItemStatusFlags_HoveredRect )  )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        return  false ;   
					 
					 
					 
					        return  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  ( g . HoveredWindow  = =  NULL  | |  window - > RootWindow  ! =  g . HoveredWindow - > RootWindow )   
					 
					 
					 
					    if  ( g . HoveredWindow  = =  NULL  | |  window - > RootWindow  ! =  g . HoveredWindow - > RootWindow )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        return  false ;   
					 
					 
					 
					        return  false ;