@ -611,7 +611,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool 
			
		
	
		
			
				
					    if  ( g . NavActivateDownId  = =  id )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        bool  nav_activated_by_code  =  ( g . NavActivateId  = =  id ) ;   
			
		
	
		
			
				
					        bool  nav_activated_by_inputs  =  IsNavInputTest ( ImGuiNavInput_Activate ,  ( flags  &  ImGuiButtonFlags_Repeat )  ?  ImGuiNavReadMode_Repeat  :  ImGuiNavReadMode_Pressed ) ;   
			
		
	
		
			
				
					        bool  nav_activated_by_inputs  =  ( flags  &  ImGuiButtonFlags_Repeat )  ?  IsNavInputTest ( ImGuiNavInput_Activate ,  ImGuiNavReadMode_Repeat )  :  IsNavInputPressed ( ImGuiNavInput_Activate ) ;   
			
		
	
		
			
				
					        if  ( nav_activated_by_code  | |  nav_activated_by_inputs )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            // Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button.
   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -2789,25 +2789,27 @@ bool ImGui::SliderBehaviorT(const ImRect& bb, ImGuiID id, ImGuiDataType data_typ 
			
		
	
		
			
				
					                g . SliderCurrentAccumDirty  =  false ;   
			
		
	
		
			
				
					            }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            const  ImVec2  input_delta2  =  GetNavInputAmount2d ( ImGuiNavDirSourceFlags_Keyboard  |  ImGuiNavDirSourceFlags_PadDPad ,  ImGuiNavReadMode_RepeatFast ,  0.0f ,  0.0f ) ;   
			
		
	
		
			
				
					            const  ImVec2  input_delta2  =  GetNavInputAmount2d ( ImGuiNavDirSourceFlags_Keyboard  |  ImGuiNavDirSourceFlags_PadDPad ,  ImGuiNavReadMode_RepeatFast ) ;   
			
		
	
		
			
				
					            float  input_delta  =  ( axis  = =  ImGuiAxis_X )  ?  input_delta2 . x  :  - input_delta2 . y ;   
			
		
	
		
			
				
					            if  ( input_delta  ! =  0.0f )   
			
		
	
		
			
				
					            {   
			
		
	
		
			
				
					                const  bool  tweak_slow  =  IsNavInputDown ( ImGuiNavInput_TweakSlow ) ;   
			
		
	
		
			
				
					                const  bool  tweak_fast  =  IsNavInputDown ( ImGuiNavInput_TweakFast ) ;   
			
		
	
		
			
				
					                const  int  decimal_precision  =  is_floating_point  ?  ImParseFormatPrecision ( format ,  3 )  :  0 ;   
			
		
	
		
			
				
					                if  ( decimal_precision  >  0 )   
			
		
	
		
			
				
					                {   
			
		
	
		
			
				
					                    input_delta  / =  100.0f ;     // Gamepad/keyboard tweak speeds in % of slider bounds
   
			
		
	
		
			
				
					                    if  ( IsNavInputDown ( ImGuiNavInput_TweakSlow ) )   
			
		
	
		
			
				
					                    if  ( tweak_slow )   
			
		
	
		
			
				
					                        input_delta  / =  10.0f ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					                else   
			
		
	
		
			
				
					                {   
			
		
	
		
			
				
					                    if  ( ( v_range  > =  - 100.0f  & &  v_range  < =  100.0f )  | |  IsNavInputDown ( ImGuiNavInput_TweakSlow ) )   
			
		
	
		
			
				
					                    if  ( ( v_range  > =  - 100.0f  & &  v_range  < =  100.0f )  | |  tweak_slow )   
			
		
	
		
			
				
					                        input_delta  =  ( ( input_delta  <  0.0f )  ?  - 1.0f  :  + 1.0f )  /  ( float ) v_range ;  // Gamepad/keyboard tweak speeds in integer steps
   
			
		
	
		
			
				
					                    else   
			
		
	
		
			
				
					                        input_delta  / =  100.0f ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					                if  ( IsNavInputDown ( ImGuiNavInput_TweakFast ) )   
			
		
	
		
			
				
					                if  ( tweak_fast )   
			
		
	
		
			
				
					                    input_delta  * =  10.0f ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                g . SliderCurrentAccum  + =  input_delta ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -4340,8 +4342,8 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        // We allow validate/cancel with Nav source (gamepad) to makes it easier to undo an accidental NavInput press with no keyboard wired, but otherwise it isn't very useful.
   
			
		
	
		
			
				
					        const  bool  is_enter_pressed  =  IsKeyPressed ( ImGuiKey_Enter )  | |  IsKeyPressed ( ImGuiKey_KeypadEnter ) ;   
			
		
	
		
			
				
					        const  bool  is_validate_nav  =  ( IsNavInputTest  ( ImGuiNavInput_Activate ,  ImGuiNavReadMode_Pressed )  & &  ! IsKeyPressed ( ImGuiKey_Space ) )  | |  IsNavInputTest  ( ImGuiNavInput_Input ,  ImGuiNavReadMode_Pressed ) ;   
			
		
	
		
			
				
					        const  bool  is_cancel  =  IsKeyPressed ( ImGuiKey_Escape )  | |  IsNavInputTest  ( ImGuiNavInput_Cancel ,  ImGuiNavReadMode_Pressed ) ;   
			
		
	
		
			
				
					        const  bool  is_validate_nav  =  ( IsNavInputPressed  ( ImGuiNavInput_Activate )  & &  ! IsKeyPressed ( ImGuiKey_Space ) )  | |  IsNavInputPressed  ( ImGuiNavInput_Input ) ;   
			
		
	
		
			
				
					        const  bool  is_cancel  =  IsKeyPressed ( ImGuiKey_Escape )  | |  IsNavInputPressed  ( ImGuiNavInput_Cancel ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( IsKeyPressed ( ImGuiKey_LeftArrow ) )                         {  state - > OnKeyPressed ( ( is_startend_key_down  ?  STB_TEXTEDIT_K_LINESTART  :  is_wordmove_key_down  ?  STB_TEXTEDIT_K_WORDLEFT  :  STB_TEXTEDIT_K_LEFT )  |  k_mask ) ;  }   
			
		
	
		
			
				
					        else  if  ( IsKeyPressed ( ImGuiKey_RightArrow ) )                   {  state - > OnKeyPressed ( ( is_startend_key_down  ?  STB_TEXTEDIT_K_LINEEND  :  is_wordmove_key_down  ?  STB_TEXTEDIT_K_WORDRIGHT  :  STB_TEXTEDIT_K_RIGHT )  |  k_mask ) ;  }