@ -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)
 // 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 ) bool  ImGui : : InputScalarAsWidgetReplacement ( const  ImRect &  bb ,  ImGuiID  id ,  const  char *  label ,  ImGuiDataType  data_type ,  void *  data_ptr ,  const  char *  format )  
			
		
	
		
		
			
				
					
					{ {  
			
		
	
		
		
			
				
					
					    ImGuiContext &  g  =  * GImGui ;      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.
   
			
				
				
			
		
	
		
		
			
				
					
					    // 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.
   
			
				
				
			
		
	
		
		
			
				
					
					    SetActiveID ( g . ScalarAsInputTextId ,  window ) ;      if  ( g . ScalarAsInputTextId  = =  0 )   
			
				
				
			
		
	
		
		
			
				
					
					    SetHoveredID ( 0 ) ;          ClearActiveID ( ) ;   
			
				
				
			
		
	
		
		
			
				
					
					    g . ActiveIdAllowNavDirFlags  =  ( 1  < <  ImGuiDir_Up )  |  ( 1  < <  ImGuiDir_Down ) ;   
			
		
	
		
		
			
				
					
					    g . ActiveIdBlockNavInputFlags  =  ( 1  < <  ImGuiNavInput_Cancel ) ;   
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    char  fmt_buf [ 32 ] ;      char  fmt_buf [ 32 ] ;   
			
		
	
		
		
			
				
					
					    char  data_buf [ 32 ] ;      char  data_buf [ 32 ] ;   
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -2637,11 +2634,11 @@ bool ImGui::InputScalarAsWidgetReplacement(const ImRect& bb, ImGuiID id, const c 
			
		
	
		
		
			
				
					
					    ImStrTrimBlanks ( data_buf ) ;      ImStrTrimBlanks ( data_buf ) ;   
			
		
	
		
		
			
				
					
					    ImGuiInputTextFlags  flags  =  ImGuiInputTextFlags_AutoSelectAll  |  ( ( data_type  = =  ImGuiDataType_Float  | |  data_type  = =  ImGuiDataType_Double )  ?  ImGuiInputTextFlags_CharsScientific  :  ImGuiInputTextFlags_CharsDecimal ) ;      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 ) ;      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 ;          g . ScalarAsInputTextId  =  g . ActiveId ;   
			
		
	
		
		
			
				
					
					        SetHoveredID ( id ) ;   
			
		
	
		
		
			
				
					
					    }      }   
			
		
	
		
		
			
				
					
					    if  ( value_changed )      if  ( value_changed )   
			
		
	
		
		
			
				
					
					        return  DataTypeApplyOpFromText ( data_buf ,  g . InputTextState . InitialText . Data ,  data_type ,  data_ptr ,  NULL ) ;          return  DataTypeApplyOpFromText ( data_buf ,  g . InputTextState . InitialText . Data ,  data_type ,  data_ptr ,  NULL ) ;