@ -572,7 +572,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Gamepad/Keyboard navigation
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // We report navigated item as hovered but we don't set g.HoveredId to not interfere with mouse.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( g . NavId  = =  id  & &  ! g . NavDisableHighlight  & &  g . NavDisableMouseHover  & &  ( g . ActiveId  = =  0  | |  g . ActiveId  = =  id  | |  g . ActiveId  = =  window - > MoveId ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! ( flags  &  ImGuiButtonFlags_NoHoveredOnNav  ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ! ( flags  &  ImGuiButtonFlags_NoHoveredOnFocus  ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            hovered  =  true ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( g . NavActivateDownId  = =  id )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -5665,8 +5665,8 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // We use NoHoldingActiveID on menus so user can click and _hold_ on a menu then drag to browse child entries
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiButtonFlags  button_flags  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_NoHoldingActiveID )  {  button_flags  | =  ImGuiButtonFlags_NoHoldingActiveId ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_PressedOnClick )      {  button_flags  | =  ImGuiButtonFlags_PressedOnClick ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_PressedOnRelease )    {  button_flags  | =  ImGuiButtonFlags_PressedOnRelease ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_SelectOnClick )       {  button_flags  | =  ImGuiButtonFlags_PressedOnClick ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_SelectOnRelease )     {  button_flags  | =  ImGuiButtonFlags_PressedOnRelease ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_Disabled )           {  button_flags  | =  ImGuiButtonFlags_Disabled ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_AllowDoubleClick )   {  button_flags  | =  ImGuiButtonFlags_PressedOnClickRelease  |  ImGuiButtonFlags_PressedOnDoubleClick ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( flags  &  ImGuiSelectableFlags_AllowItemOverlap )   {  button_flags  | =  ImGuiButtonFlags_AllowItemOverlap ;  }   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -6267,7 +6267,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > DC . CursorPos . x  + =  IM_FLOOR ( style . ItemSpacing . x  *  0.5f ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        PushStyleVar ( ImGuiStyleVar_ItemSpacing ,  ImVec2 ( style . ItemSpacing . x  *  2.0f ,  style . ItemSpacing . y ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        float  w  =  label_size . x ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        pressed  =  Selectable ( label ,  menu_is_open ,  ImGuiSelectableFlags_NoHoldingActiveID  |  ImGuiSelectableFlags_Pressed OnClick  |  ImGuiSelectableFlags_DontClosePopups  |  ( ! enabled  ?  ImGuiSelectableFlags_Disabled  :  0 ) ,  ImVec2 ( w ,  0.0f ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        pressed  =  Selectable ( label ,  menu_is_open ,  ImGuiSelectableFlags_NoHoldingActiveID  |  ImGuiSelectableFlags_Select OnClick  |  ImGuiSelectableFlags_DontClosePopups  |  ( ! enabled  ?  ImGuiSelectableFlags_Disabled  :  0 ) ,  ImVec2 ( w ,  0.0f ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        PopStyleVar ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > DC . CursorPos . x  + =  IM_FLOOR ( style . ItemSpacing . x  *  ( - 1.0f  +  0.5f ) ) ;  // -1 spacing to compensate the spacing added when Selectable() did a SameLine(). It would also work to call SameLine() ourselves after the PopStyleVar().
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -6277,7 +6277,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        popup_pos  =  ImVec2 ( pos . x ,  pos . y  -  style . WindowPadding . y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        float  w  =  window - > DC . MenuColumns . DeclColumns ( label_size . x ,  0.0f ,  IM_FLOOR ( g . FontSize  *  1.20f ) ) ;  // Feedback to next frame
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        float  extra_w  =  ImMax ( 0.0f ,  GetContentRegionAvail ( ) . x  -  w ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        pressed  =  Selectable ( label ,  menu_is_open ,  ImGuiSelectableFlags_NoHoldingActiveID  |  ImGuiSelectableFlags_Pressed OnClick  |  ImGuiSelectableFlags_DontClosePopups  |  ImGuiSelectableFlags_DrawFillAvailWidth  |  ( ! enabled  ?  ImGuiSelectableFlags_Disabled  :  0 ) ,  ImVec2 ( w ,  0.0f ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        pressed  =  Selectable ( label ,  menu_is_open ,  ImGuiSelectableFlags_NoHoldingActiveID  |  ImGuiSelectableFlags_Select OnClick  |  ImGuiSelectableFlags_DontClosePopups  |  ImGuiSelectableFlags_DrawFillAvailWidth  |  ( ! enabled  ?  ImGuiSelectableFlags_Disabled  :  0 ) ,  ImVec2 ( w ,  0.0f ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ImU32  text_col  =  GetColorU32 ( enabled  ?  ImGuiCol_Text  :  ImGuiCol_TextDisabled ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        RenderArrow ( window - > DrawList ,  pos  +  ImVec2 ( window - > DC . MenuColumns . Pos [ 2 ]  +  extra_w  +  g . FontSize  *  0.30f ,  0.0f ) ,  text_col ,  ImGuiDir_Right ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -6407,7 +6407,7 @@ bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, boo 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // We've been using the equivalent of ImGuiSelectableFlags_SetNavIdOnHover on all Selectable() since early Nav system days (commit 43ee5d73),
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // but I am unsure whether this should be kept at all. For now moved it to be an opt-in feature used by menus only.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiSelectableFlags  flags  =  ImGuiSelectableFlags_Pressed OnRelease  |  ImGuiSelectableFlags_SetNavIdOnHover  |  ( enabled  ?  0  :  ImGuiSelectableFlags_Disabled ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiSelectableFlags  flags  =  ImGuiSelectableFlags_Select OnRelease  |  ImGuiSelectableFlags_SetNavIdOnHover  |  ( enabled  ?  0  :  ImGuiSelectableFlags_Disabled ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool  pressed ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > DC . LayoutType  = =  ImGuiLayoutType_Horizontal )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {