mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	InputText: Fixed ImGuiInputTextFlags_AllowTabInput leading to two tabs characters being inserted if the back-end provided both Key and Character input. (#2467, #1336)
This commit is contained in:
		@@ -3333,7 +3333,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
 | 
			
		||||
        FocusWindow(window);
 | 
			
		||||
        IM_ASSERT(ImGuiNavInput_COUNT < 32);
 | 
			
		||||
        g.ActiveIdBlockNavInputFlags = (1 << ImGuiNavInput_Cancel);
 | 
			
		||||
        if (flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_AllowTabInput))  // Disable keyboard tabbing out
 | 
			
		||||
        if (flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_AllowTabInput))  // Disable keyboard tabbing out as we will use the \t character.
 | 
			
		||||
            g.ActiveIdBlockNavInputFlags |= (1 << ImGuiNavInput_KeyTab_);
 | 
			
		||||
        if (!is_multiline && !(flags & ImGuiInputTextFlags_CallbackHistory))
 | 
			
		||||
            g.ActiveIdAllowNavDirFlags = ((1 << ImGuiDir_Up) | (1 << ImGuiDir_Down));
 | 
			
		||||
@@ -3506,12 +3506,6 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
 | 
			
		||||
                    state->OnKeyPressed((int)c);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else if ((flags & ImGuiInputTextFlags_AllowTabInput) && IsKeyPressedMap(ImGuiKey_Tab) && !io.KeyCtrl && !io.KeyShift && !io.KeyAlt && !is_readonly)
 | 
			
		||||
        {
 | 
			
		||||
            unsigned int c = '\t'; // Insert TAB
 | 
			
		||||
            if (InputTextFilterCharacter(&c, flags, callback, callback_user_data))
 | 
			
		||||
                state->OnKeyPressed((int)c);
 | 
			
		||||
        }
 | 
			
		||||
        else if (IsKeyPressedMap(ImGuiKey_Escape))
 | 
			
		||||
        {
 | 
			
		||||
            clear_active_id = cancel_edit = true;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user