mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +00:00 
			
		
		
		
	InputText: Fixed a case where deactivation frame would write to underlying buffer or call CallbackResize although unnecessary, in a frame where the return value was false.
This commit is contained in:
		@@ -42,6 +42,9 @@ Breaking changes:
 | 
			
		||||
 | 
			
		||||
Other changes:
 | 
			
		||||
 | 
			
		||||
- InputText: Fixed a case where deactivation frame would write to underlying
 | 
			
		||||
  buffer or call CallbackResize although unnecessary, in a frame where the
 | 
			
		||||
  return value was false.
 | 
			
		||||
- IO: Added io.ClearEventsQueue() to clear incoming inputs events. (#4921)
 | 
			
		||||
  May be useful in conjunction with io.ClearInputsKeys() if you need to clear
 | 
			
		||||
  both current inputs state and queued events (e.g. when using blocking native
 | 
			
		||||
 
 | 
			
		||||
@@ -4719,11 +4719,11 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
 | 
			
		||||
    // Handle reapplying final data on deactivation (see InputTextDeactivateHook() for details)
 | 
			
		||||
    if (g.InputTextDeactivatedState.ID == id)
 | 
			
		||||
    {
 | 
			
		||||
        if (g.ActiveId != id && IsItemDeactivatedAfterEdit() && !is_readonly)
 | 
			
		||||
        if (g.ActiveId != id && IsItemDeactivatedAfterEdit() && !is_readonly && strcmp(g.InputTextDeactivatedState.TextA.Data, buf) != 0)
 | 
			
		||||
        {
 | 
			
		||||
            apply_new_text = g.InputTextDeactivatedState.TextA.Data;
 | 
			
		||||
            apply_new_text_length = g.InputTextDeactivatedState.TextA.Size - 1;
 | 
			
		||||
            value_changed |= (strcmp(g.InputTextDeactivatedState.TextA.Data, buf) != 0);
 | 
			
		||||
            value_changed = true;
 | 
			
		||||
            //IMGUI_DEBUG_LOG("InputText(): apply Deactivated data for 0x%08X: \"%.*s\".\n", id, apply_new_text_length, apply_new_text);
 | 
			
		||||
        }
 | 
			
		||||
        g.InputTextDeactivatedState.ID = 0;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user