InputText: fix buffer modifications in callbacks while using resize callback (#4784)

Regressed by 5ac25e7c7 (#4762)
This commit is contained in:
ocornut 2021-12-05 19:03:40 +01:00
parent aa41f16589
commit eea836135a

View File

@ -4510,7 +4510,8 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
callback(&callback_data); callback(&callback_data);
// Read back what user may have modified // Read back what user may have modified
IM_ASSERT(callback_data.Buf == callback_buf); // Invalid to modify those fields callback_buf = is_readonly ? buf : state->TextA.Data; // Pointer may have been invalidated by a resize callback
IM_ASSERT(callback_data.Buf == callback_buf); // Invalid to modify those fields
IM_ASSERT(callback_data.BufSize == state->BufCapacityA); IM_ASSERT(callback_data.BufSize == state->BufCapacityA);
IM_ASSERT(callback_data.Flags == flags); IM_ASSERT(callback_data.Flags == flags);
const bool buf_dirty = callback_data.BufDirty; const bool buf_dirty = callback_data.BufDirty;