@ -1082,6 +1082,7 @@ static void             NavUpdateWindowingOverlay(); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              NavUpdateMoveResult ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  float             NavUpdatePageUpPageDown ( int  allowed_dir_flags ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  inline  void       NavUpdateAnyRequestFlag ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  bool              NavScoreItem ( ImGuiNavMoveResult *  result ,  ImRect  cand ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              NavProcessItem ( ImGuiWindow *  window ,  const  ImRect &  nav_bb ,  ImGuiID  id ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  ImVec2            NavCalcPreferredRefPos ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              NavSaveLastChildNavWindowIntoParent ( ImGuiWindow *  nav_window ) ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -3344,12 +3345,6 @@ ImDrawList* ImGui::GetBackgroundDrawList() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    return  & GImGui - > BackgroundDrawList ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  ImDrawList *  GetForegroundDrawList ( ImGuiWindow * )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // This seemingly unnecessary wrapper simplifies compatibility between the 'master' and 'docking' branches.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    return  & GImGui - > ForegroundDrawList ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					ImDrawList *  ImGui : : GetForegroundDrawList ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    return  & GImGui - > ForegroundDrawList ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -7882,7 +7877,7 @@ static void inline NavClampRectToVisibleAreaForMoveDir(ImGuiDir move_dir, ImRect 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Scoring function for directional navigation. Based on https://gist.github.com/rygorous/6981057
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  bool  NavScoreItem ( ImGuiNavMoveResult *  result ,  ImRect  cand )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  bool  ImGui : : NavScoreItem ( ImGuiNavMoveResult *  result ,  ImRect  cand )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiContext &  g  =  * GImGui ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiWindow *  window  =  g . CurrentWindow ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -7945,22 +7940,22 @@ static bool NavScoreItem(ImGuiNavMoveResult* result, ImRect cand) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# if IMGUI_DEBUG_NAV_SCORING  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    char  buf [ 128 ] ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ImGui : : I sMouseHoveringRect ( cand . Min ,  cand . Max ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( IsMouseHoveringRect ( cand . Min ,  cand . Max ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ImFormatString ( buf ,  IM_ARRAYSIZE ( buf ) ,  " dbox (%.2f,%.2f->%.4f) \n dcen (%.2f,%.2f->%.4f) \n d (%.2f,%.2f->%.4f) \n nav %c, quadrant %c " ,  dbx ,  dby ,  dist_box ,  dcx ,  dcy ,  dist_center ,  dax ,  day ,  dist_axial ,  " WENS " [ g . NavMoveDir ] ,  " WENS " [ quadrant ] ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ImDrawList *  draw_list  =  ImGui : : GetForegroundDrawList ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ImDrawList *  draw_list  =  GetForegroundDrawList ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        draw_list - > AddRect ( curr . Min ,  curr . Max ,  IM_COL32 ( 255 , 200 , 0 , 100 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        draw_list - > AddRect ( cand . Min ,  cand . Max ,  IM_COL32 ( 255 , 255 , 0 , 200 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        draw_list - > AddRectFilled ( cand . Max - ImVec2 ( 4 , 4 ) ,  cand . Max + ImGui : : CalcTextSize ( buf ) + ImVec2 ( 4 , 4 ) ,  IM_COL32 ( 40 , 0 , 0 , 150 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        draw_list - > AddRectFilled ( cand . Max   -   ImVec2 ( 4 , 4 ) ,  cand . Max  +   CalcTextSize ( buf )   +   ImVec2 ( 4 , 4 ) ,  IM_COL32 ( 40 , 0 , 0 , 150 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        draw_list - > AddText ( g . IO . FontDefault ,  13.0f ,  cand . Max ,  ~ 0U ,  buf ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else  if  ( g . IO . KeyCtrl )  // Hold to preview score in matching quadrant. Press C to rotate.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( ImGui : : I sKeyPressedMap ( ImGuiKey_C ) )  {  g . NavMoveDirLast  =  ( ImGuiDir ) ( ( g . NavMoveDirLast  +  1 )  &  3 ) ;  g . IO . KeysDownDuration [ g . IO . KeyMap [ ImGuiKey_C ] ]  =  0.01f ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( IsKeyPressedMap ( ImGuiKey_C ) )  {  g . NavMoveDirLast  =  ( ImGuiDir ) ( ( g . NavMoveDirLast  +  1 )  &  3 ) ;  g . IO . KeysDownDuration [ g . IO . KeyMap [ ImGuiKey_C ] ]  =  0.01f ;  }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( quadrant  = =  g . NavMoveDir )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ImFormatString ( buf ,  IM_ARRAYSIZE ( buf ) ,  " %.0f/%.0f " ,  dist_box ,  dist_center ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ImDrawList *  draw_list  =  ImGui : : GetForegroundDrawList ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ImDrawList *  draw_list  =  GetForegroundDrawList ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            draw_list - > AddRectFilled ( cand . Min ,  cand . Max ,  IM_COL32 ( 255 ,  0 ,  0 ,  200 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            draw_list - > AddText ( g . IO . FontDefault ,  13.0f ,  cand . Min ,  IM_COL32 ( 255 ,  255 ,  255 ,  255 ) ,  buf ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }