@ -4659,7 +4659,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ImRect  resize_rect ( corner ,  corner  +  grip . InnerDir  *  grip_hover_size ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    resize_rect . FixInverted ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    bool  hovered ,  held ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ButtonBehavior ( resize_rect ,  window - > GetID ( ( void * ) ( intptr_t ) resize_grip_n ) ,  & hovered ,  & held ,  ImGuiButtonFlags_FlattenChilds  ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ButtonBehavior ( resize_rect ,  window - > GetID ( ( void * ) ( intptr_t ) resize_grip_n ) ,  & hovered ,  & held ,  ImGuiButtonFlags_FlattenChildren  ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( hovered  | |  held )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        g . MouseCursor  =  ( resize_grip_n  &  1 )  ?  ImGuiMouseCursor_ResizeNESW  :  ImGuiMouseCursor_ResizeNWSE ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -4685,7 +4685,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    const  float  BORDER_APPEAR_TIMER  =  0.05f ;  // Reduce visual noise
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    bool  hovered ,  held ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ImRect  border_rect  =  GetBorderRect ( window ,  border_n ,  grip_hover_size ,  BORDER_SIZE ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ButtonBehavior ( border_rect ,  window - > GetID ( ( void * ) ( intptr_t ) ( border_n + 4 ) ) ,  & hovered ,  & held ,  ImGuiButtonFlags_FlattenChilds  ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ButtonBehavior ( border_rect ,  window - > GetID ( ( void * ) ( intptr_t ) ( border_n + 4 ) ) ,  & hovered ,  & held ,  ImGuiButtonFlags_FlattenChildren  ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  ( ( hovered  & &  g . HoveredIdTimer  >  BORDER_APPEAR_TIMER )  | |  held )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        g . MouseCursor  =  ( border_n  &  1 )  ?  ImGuiMouseCursor_ResizeEW  :  ImGuiMouseCursor_ResizeNS ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -6147,17 +6147,17 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        flags  | =  ImGuiButtonFlags_PressedOnClickRelease ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiWindow *  backup_hovered_window  =  g . HoveredWindow ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ( flags  &  ImGuiButtonFlags_FlattenChilds  )  & &  g . HoveredRootWindow  = =  window )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ( flags  &  ImGuiButtonFlags_FlattenChildren  )  & &  g . HoveredRootWindow  = =  window )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        g . HoveredWindow  =  window ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool  pressed  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool  hovered  =  ItemHoverable ( bb ,  id ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ( flags  &  ImGuiButtonFlags_FlattenChilds  )  & &  g . HoveredRootWindow  = =  window )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ( flags  &  ImGuiButtonFlags_FlattenChildren  )  & &  g . HoveredRootWindow  = =  window )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        g . HoveredWindow  =  backup_hovered_window ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // AllowOverlap mode (rarely used) requires previous frame HoveredId to be null or to match. This allows using patterns where a later submitted widget overlaps a previous one.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( hovered  & &  ( flags  &  ImGuiButtonFlags_AllowOverlapMode  )  & &  ( g . HoveredIdPreviousFrame  ! =  id  & &  g . HoveredIdPreviousFrame  ! =  0 ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( hovered  & &  ( flags  &  ImGuiButtonFlags_AllowItem Overlap )  & &  ( g . HoveredIdPreviousFrame  ! =  id  & &  g . HoveredIdPreviousFrame  ! =  0 ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        hovered  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( hovered )   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -6613,7 +6613,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // - OpenOnDoubleClick .............. double-click anywhere to open
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // - OpenOnArrow .................... single-click on arrow to open
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // - OpenOnDoubleClick|OpenOnArrow .. single-click on arrow or double-click anywhere to open
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiButtonFlags  button_flags  =  ImGuiButtonFlags_NoKeyModifiers  |  ( ( flags  &  ImGuiTreeNodeFlags_AllowOverlapMode )  ?  ImGuiButtonFlags_AllowOverlapMode   :  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiButtonFlags  button_flags  =  ImGuiButtonFlags_NoKeyModifiers  |  ( ( flags  &  ImGuiTreeNodeFlags_AllowOverlapMode )  ?  ImGuiButtonFlags_AllowItem Overlap  :  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiTreeNodeFlags_OpenOnDoubleClick )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        button_flags  | =  ImGuiButtonFlags_PressedOnDoubleClick  |  ( ( flags  &  ImGuiTreeNodeFlags_OpenOnArrow )  ?  ImGuiButtonFlags_PressedOnClickRelease  :  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool  hovered ,  held ,  pressed  =  ButtonBehavior ( interact_bb ,  id ,  & hovered ,  & held ,  button_flags ) ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -10517,7 +10517,7 @@ bool ImGui::SplitterBehavior(ImGuiID id, const ImRect& bb, ImGuiAxis axis, float 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool  hovered ,  held ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImRect  bb_interact  =  bb ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bb_interact . Expand ( axis  = =  ImGuiAxis_Y  ?  ImVec2 ( 0.0f ,  hover_extend )  :  ImVec2 ( hover_extend ,  0.0f ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ButtonBehavior ( bb_interact ,  id ,  & hovered ,  & held ,  ImGuiButtonFlags_FlattenChilds   |  ImGuiButtonFlags_AllowOverlapMode  ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ButtonBehavior ( bb_interact ,  id ,  & hovered ,  & held ,  ImGuiButtonFlags_FlattenChildren   |  ImGuiButtonFlags_AllowItem Overlap ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( g . ActiveId  ! =  id )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        SetItemAllowOverlap ( ) ;