InputText: fix for InsertChars() to work on read-only buffer. (#8714, #8689, #8242)

Ill defined feature but memory editor use InsertChars etc on a read-only buffer.
`if (init_state)` block of InputTextEx() intentionally does not resize TextA, as unneeded.
Amend b2c73596ae
Amend e900571
This commit is contained in:
ocornut
2025-06-22 13:04:06 +02:00
parent afe20dc9b6
commit 0dc2885f3e

View File

@@ -4289,7 +4289,7 @@ void ImGuiInputTextCallbackData::InsertChars(int pos, const char* new_text, cons
// Grow internal buffer if needed
const bool is_resizable = (Flags & ImGuiInputTextFlags_CallbackResize) != 0;
const int new_text_len = new_text_end ? (int)(new_text_end - new_text) : (int)ImStrlen(new_text);
if (new_text_len + BufTextLen + 1 > obj->TextA.Size)
if (new_text_len + BufTextLen + 1 > obj->TextA.Size && (Flags & ImGuiInputTextFlags_ReadOnly) == 0)
{
if (!is_resizable)
return;