@ -5562,6 +5562,18 @@ void ImGuiTextEditState::UpdateScrollOffset() 
			
		
	
		
			
				
					    // Scroll in chunks of quarter width
   
			
		
	
		
			
				
					    const  float  scroll_x_increment  =  Width  *  0.25f ;   
			
		
	
		
			
				
					    const  float  cursor_offset_x  =  Font - > CalcTextSizeW ( FontSize ,  FLT_MAX ,  Text ,  Text + StbState . cursor ,  NULL ) . x ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // If widget became bigger than text (because of a resize), reset horizontal scrolling
   
			
		
	
		
			
				
					    if  ( ScrollX  >  0.0f )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        const  float  text_width  =  cursor_offset_x  +  Font - > CalcTextSizeW ( FontSize ,  FLT_MAX ,  Text + StbState . cursor ,  NULL ,  NULL ) . x ;   
			
		
	
		
			
				
					        if  ( text_width  <  Width )   
			
		
	
		
			
				
					        {   
			
		
	
		
			
				
					            ScrollX  =  0.0f ;   
			
		
	
		
			
				
					            return ;   
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( cursor_offset_x  <  ScrollX )   
			
		
	
		
			
				
					        ScrollX  =  ImMax ( 0.0f ,  cursor_offset_x  -  scroll_x_increment ) ;     
  
			
		
	
		
			
				
					    else  if  ( cursor_offset_x  -  Width  > =  ScrollX )   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -5873,14 +5885,18 @@ bool ImGui::InputText(const char* label, char* buf, size_t buf_size, ImGuiInputT 
			
		
	
		
			
				
					    bool  cancel_edit  =  false ;   
			
		
	
		
			
				
					    bool  enter_pressed  =  false ;   
			
		
	
		
			
				
					    if  ( g . ActiveId  = =  id )   
			
		
	
		
			
				
					    //if (edit_state.Id == id)  // Works, but double-click to select-all sets cursors to end which in turn tends to scroll toward the right when shrinking widget.
   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        // Edit in progress 
   
			
		
	
		
			
				
					        // Update some data if we are active or last active 
   
			
		
	
		
			
				
					        edit_state . Width  =  w  +  style . FramePadding . x ;   
			
		
	
		
			
				
					        edit_state . BufSizeA  =  buf_size ;   
			
		
	
		
			
				
					        edit_state . Font  =  window - > Font ( ) ;   
			
		
	
		
			
				
					        edit_state . FontSize  =  window - > FontSize ( ) ;   
			
		
	
		
			
				
					        edit_state . UpdateScrollOffset ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    if  ( g . ActiveId  = =  id )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        // Edit in progress
   
			
		
	
		
			
				
					        const  float  mx  =  g . IO . MousePos . x  -  frame_bb . Min . x  -  style . FramePadding . x ;   
			
		
	
		
			
				
					        const  float  my  =  window - > FontSize ( ) * 0.5f ;    // Flatten mouse because we are doing a single-line edit
   
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -6083,8 +6099,8 @@ bool ImGui::InputText(const char* label, char* buf, size_t buf_size, ImGuiInputT 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  float  render_scroll_x  =  ( g . ActiveId  = =  id )  ?  edit_state . ScrollX  :  0.0f ;   
			
		
	
		
			
				
					    //const float render_scroll_x = (edit_state.Id == id) ? edit_state.ScrollX : 0.0f;
   
			
		
	
		
			
				
					    //const float render_scroll_x = (g.ActiveId == id) ? edit_state.ScrollX : 0.0f;
   
			
		
	
		
			
				
					    const  float  render_scroll_x  =  ( edit_state . Id  = =  id )  ?  edit_state . ScrollX  :  0.0f ;   
			
		
	
		
			
				
					    ImGuiTextEditState : : RenderTextScrolledClipped ( window - > Font ( ) ,  window - > FontSize ( ) ,  buf ,  frame_bb . Min  +  style . FramePadding ,  w  +  style . FramePadding . x ,  render_scroll_x ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( g . ActiveId  = =  id )