@ -2617,18 +2617,15 @@ int ImParseFormatPrecision(const char* fmt, int default_precision) 
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					// Create text input in place of an active drag/slider (used when doing a CTRL+Click on drag/slider widgets)
  
			
		
	
		
			
				
					// FIXME: Logic is awkward and confusing. This should be reworked to facilitate using in  other situations.
  
			
		
	
		
			
				
					// FIXME: Facilitate using this in variety of  other situations.
  
			
		
	
		
			
				
					bool  ImGui : : InputScalarAsWidgetReplacement ( const  ImRect &  bb ,  ImGuiID  id ,  const  char *  label ,  ImGuiDataType  data_type ,  void *  data_ptr ,  const  char *  format )  
			
		
	
		
			
				
					{  
			
		
	
		
			
				
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
			
				
					    ImGuiWindow *  window  =  GetCurrentWindow ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // Our replacement widget will override the focus ID (registered previously to allow for a TAB focus to happen)
   
			
		
	
		
			
				
					    // On the first frame, g.ScalarAsInputTextId == 0, then on subsequent frames it becomes == id
   
			
		
	
		
			
				
					    SetActiveID ( g . ScalarAsInputTextId ,  window ) ;   
			
		
	
		
			
				
					    SetHoveredID ( 0 ) ;   
			
		
	
		
			
				
					    g . ActiveIdAllowNavDirFlags  =  ( 1  < <  ImGuiDir_Up )  |  ( 1  < <  ImGuiDir_Down ) ;   
			
		
	
		
			
				
					    g . ActiveIdBlockNavInputFlags  =  ( 1  < <  ImGuiNavInput_Cancel ) ;   
			
		
	
		
			
				
					    // On the first frame, g.ScalarAsInputTextId == 0, then on subsequent frames it becomes == id.
   
			
		
	
		
			
				
					    // We clear ActiveID on the first frame to allow the InputText() taking it back.
   
			
		
	
		
			
				
					    if  ( g . ScalarAsInputTextId  = =  0 )   
			
		
	
		
			
				
					        ClearActiveID ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    char  fmt_buf [ 32 ] ;   
			
		
	
		
			
				
					    char  data_buf [ 32 ] ;   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2637,11 +2634,11 @@ bool ImGui::InputScalarAsWidgetReplacement(const ImRect& bb, ImGuiID id, const c 
			
		
	
		
			
				
					    ImStrTrimBlanks ( data_buf ) ;   
			
		
	
		
			
				
					    ImGuiInputTextFlags  flags  =  ImGuiInputTextFlags_AutoSelectAll  |  ( ( data_type  = =  ImGuiDataType_Float  | |  data_type  = =  ImGuiDataType_Double )  ?  ImGuiInputTextFlags_CharsScientific  :  ImGuiInputTextFlags_CharsDecimal ) ;   
			
		
	
		
			
				
					    bool  value_changed  =  InputTextEx ( label ,  data_buf ,  IM_ARRAYSIZE ( data_buf ) ,  bb . GetSize ( ) ,  flags ) ;   
			
		
	
		
			
				
					    if  ( g . ScalarAsInputTextId  = =  0 )      // First frame we started displaying the InputText widget
    
			
		
	
		
			
				
					    if  ( g . ScalarAsInputTextId  = =  0 )   
			
		
	
		
			
				
					    {   
			
		
	
		
			
				
					        IM_ASSERT ( g . ActiveId  = =  id ) ;     // InputText ID expected to match the Slider ID
   
			
		
	
		
			
				
					        // First frame we started displaying the InputText widget, we expect it to take the active id.
   
			
		
	
		
			
				
					        IM_ASSERT ( g . ActiveId  = =  id ) ;   
			
		
	
		
			
				
					        g . ScalarAsInputTextId  =  g . ActiveId ;   
			
		
	
		
			
				
					        SetHoveredID ( id ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					    if  ( value_changed )   
			
		
	
		
			
				
					        return  DataTypeApplyOpFromText ( data_buf ,  g . InputTextState . InitialText . Data ,  data_type ,  data_ptr ,  NULL ) ;