@ -3257,7 +3257,11 @@ bool ImGui::FocusableItemRegister(ImGuiWindow* window, ImGuiID id) 
			
		
	
		
		
			
				
					
					    const  bool  is_tab_stop  =  ( g . CurrentItemFlags  &  ( ImGuiItemFlags_NoTabStop  |  ImGuiItemFlags_Disabled ) )  = =  0 ;      const  bool  is_tab_stop  =  ( g . CurrentItemFlags  &  ( ImGuiItemFlags_NoTabStop  |  ImGuiItemFlags_Disabled ) )  = =  0 ;   
			
		
	
		
		
			
				
					
					    window - > DC . FocusCounterRegular + + ;      window - > DC . FocusCounterRegular + + ;   
			
		
	
		
		
			
				
					
					    if  ( is_tab_stop )      if  ( is_tab_stop )   
			
		
	
		
		
			
				
					
					    {   
			
		
	
		
		
			
				
					
					        window - > DC . FocusCounterTabStop + + ;          window - > DC . FocusCounterTabStop + + ;   
			
		
	
		
		
			
				
					
					        if  ( g . NavId  = =  id )   
			
		
	
		
		
			
				
					
					            g . NavIdTabCounter  =  window - > DC . FocusCounterTabStop ;   
			
		
	
		
		
			
				
					
					    }   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    // Process TAB/Shift-TAB to tab *OUT* of the currently focused item.
      // Process TAB/Shift-TAB to tab *OUT* of the currently focused item.
   
			
		
	
		
		
			
				
					
					    // (Note that we can always TAB out of a widget that doesn't allow tabbing in)
      // (Note that we can always TAB out of a widget that doesn't allow tabbing in)
   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -3787,12 +3791,14 @@ void ImGui::UpdateTabFocus() 
			
		
	
		
		
			
				
					
					    g . TabFocusPressed  =  ( g . NavWindow  & &  g . NavWindow - > Active  & &  ! ( g . NavWindow - > Flags  &  ImGuiWindowFlags_NoNavInputs )  & &  ! g . IO . KeyCtrl  & &  IsKeyPressedMap ( ImGuiKey_Tab ) ) ;      g . TabFocusPressed  =  ( g . NavWindow  & &  g . NavWindow - > Active  & &  ! ( g . NavWindow - > Flags  &  ImGuiWindowFlags_NoNavInputs )  & &  ! g . IO . KeyCtrl  & &  IsKeyPressedMap ( ImGuiKey_Tab ) ) ;   
			
		
	
		
		
			
				
					
					    if  ( g . ActiveId  = =  0  & &  g . TabFocusPressed )      if  ( g . ActiveId  = =  0  & &  g . TabFocusPressed )   
			
		
	
		
		
			
				
					
					    {      {   
			
		
	
		
		
			
				
					
					        // Note that SetKeyboardFocusHere() sets the Next fields mid-frame. To be consistent we also
          // - This path is only taken when no widget are active/tabbed-into yet.
   
			
				
				
			
		
	
		
		
			
				
					
					        // manipulate the Next fields even, even though they will be turned into Curr fields by the code below.
          //   Subsequent tabbing will be processed by FocusableItemRegister()
   
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					        // - Note that SetKeyboardFocusHere() sets the Next fields mid-frame. To be consistent we also
   
			
		
	
		
		
			
				
					
					        //   manipulate the Next fields here even though they will be turned into Curr fields below.
   
			
		
	
		
		
			
				
					
					        g . TabFocusRequestNextWindow  =  g . NavWindow ;          g . TabFocusRequestNextWindow  =  g . NavWindow ;   
			
		
	
		
		
			
				
					
					        g . TabFocusRequestNextCounterRegular  =  INT_MAX ;          g . TabFocusRequestNextCounterRegular  =  INT_MAX ;   
			
		
	
		
		
			
				
					
					        if  ( g . NavId  ! =  0  & &  g . NavIdTabCounter  ! =  INT_MAX )          if  ( g . NavId  ! =  0  & &  g . NavIdTabCounter  ! =  INT_MAX )   
			
		
	
		
		
			
				
					
					            g . TabFocusRequestNextCounterTabStop  =  g . NavIdTabCounter  +  1  +  ( g . IO . KeyShift  ?  - 1  :  1 ) ;              g . TabFocusRequestNextCounterTabStop  =  g . NavIdTabCounter  +  ( g . IO . KeyShift  ?  - 1  :  0 ) ;   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        else          else   
			
		
	
		
		
			
				
					
					            g . TabFocusRequestNextCounterTabStop  =  g . IO . KeyShift  ?  - 1  :  0 ;              g . TabFocusRequestNextCounterTabStop  =  g . IO . KeyShift  ?  - 1  :  0 ;   
			
		
	
		
		
			
				
					
					    }      }   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -8828,7 +8834,6 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con 
			
		
	
		
		
			
				
					
					        g . NavLayer  =  window - > DC . NavLayerCurrent ;          g . NavLayer  =  window - > DC . NavLayerCurrent ;   
			
		
	
		
		
			
				
					
					        g . NavFocusScopeId  =  window - > DC . NavFocusScopeIdCurrent ;          g . NavFocusScopeId  =  window - > DC . NavFocusScopeIdCurrent ;   
			
		
	
		
		
			
				
					
					        g . NavIdIsAlive  =  true ;          g . NavIdIsAlive  =  true ;   
			
		
	
		
		
			
				
					
					        g . NavIdTabCounter  =  window - > DC . FocusCounterTabStop ;   
			
		
	
		
		
			
				
					
					        window - > NavRectRel [ window - > DC . NavLayerCurrent ]  =  nav_bb_rel ;     // Store item bounding box (relative to window position)
          window - > NavRectRel [ window - > DC . NavLayerCurrent ]  =  nav_bb_rel ;     // Store item bounding box (relative to window position)
   
			
		
	
		
		
			
				
					
					    }      }   
			
		
	
		
		
			
				
					
					} }