InputText: revert truncation behavior from e612536 as it can truncate mid-UTF8. (#9029)

This commit is contained in:
ocornut
2025-10-29 17:24:23 +01:00
parent 9753c741b9
commit 2a194e21a0
2 changed files with 2 additions and 4 deletions

View File

@@ -49,8 +49,6 @@ Other Changes:
EndTable() was mistakenly restoring a wrong current table. EndTable() was mistakenly restoring a wrong current table.
- Disabled: fixed a bug when a previously enabled item that got nav focus - Disabled: fixed a bug when a previously enabled item that got nav focus
and then turns disabled could still be activated using keyboard. (#9036) and then turns disabled could still be activated using keyboard. (#9036)
- InputText: when buffer is not resizable, trying to paste contents that
cannot fit will now truncate text instead of ignoring the paste. (#9029)
- InputText: avoid continuously overwriting ownership of ImGuiKey_Enter/_KeypadEnter - InputText: avoid continuously overwriting ownership of ImGuiKey_Enter/_KeypadEnter
keys in order to allow e.g. external Shortcut override behavior. (#9004) keys in order to allow e.g. external Shortcut override behavior. (#9004)
- InputText: when using a callback to reduce/manipulate the value of BufTextLen, - InputText: when using a callback to reduce/manipulate the value of BufTextLen,

View File

@@ -4155,7 +4155,7 @@ static int STB_TEXTEDIT_INSERTCHARS(ImGuiInputTextState* obj, int pos, const cha
// We support partial insertion (with a mod in stb_textedit.h) // We support partial insertion (with a mod in stb_textedit.h)
const int avail = obj->BufCapacity - 1 - obj->TextLen; const int avail = obj->BufCapacity - 1 - obj->TextLen;
if (!is_resizable && new_text_len > avail) if (!is_resizable && new_text_len > avail)
new_text_len = avail; // 0 new_text_len = 0; // avail
if (new_text_len == 0) if (new_text_len == 0)
return 0; return 0;
@@ -4314,7 +4314,7 @@ void ImGuiInputTextCallbackData::InsertChars(int pos, const char* new_text, cons
// We support partial insertion (with a mod in stb_textedit.h) // We support partial insertion (with a mod in stb_textedit.h)
const int avail = BufSize - 1 - BufTextLen; const int avail = BufSize - 1 - BufTextLen;
if (!is_resizable && new_text_len > avail) if (!is_resizable && new_text_len > avail)
new_text_len = avail; // 0 new_text_len = 0; // avail
if (new_text_len == 0) if (new_text_len == 0)
return; return;