|
@@ -4977,19 +4977,17 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // When using 'ImGuiInputTextFlags_EnterReturnsTrue' as a special case we reapply the live buffer back to the input buffer
|
|
|
- // before clearing ActiveId, even though strictly speaking it wasn't modified on this frame.
|
|
|
- // If we didn't do that, code like InputInt() with ImGuiInputTextFlags_EnterReturnsTrue would fail.
|
|
|
- // This also allows the user to use InputText() with ImGuiInputTextFlags_EnterReturnsTrue without maintaining any user-side storage
|
|
|
+ // FIXME-OPT: We always reapply the live buffer back to the input buffer before clearing ActiveId,
|
|
|
+ // even though strictly speaking it wasn't modified on this frame. Should mark dirty state from the stb_textedit callbacks.
|
|
|
+ // If we do that, need to ensure that as special case, 'validated == true' also writes back.
|
|
|
+ // This also allows the user to use InputText() without maintaining any user-side storage.
|
|
|
// (please note that if you use this property along ImGuiInputTextFlags_CallbackResize you can end up with your temporary string object
|
|
|
// unnecessarily allocating once a frame, either store your string data, either if you don't then don't use ImGuiInputTextFlags_CallbackResize).
|
|
|
- const bool apply_edit_back_to_user_buffer = !revert_edit || (validated && (flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0);
|
|
|
+ const bool apply_edit_back_to_user_buffer = true;// !revert_edit || (validated && (flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0);
|
|
|
if (apply_edit_back_to_user_buffer)
|
|
|
{
|
|
|
- // Apply new value immediately - copy modified buffer back
|
|
|
+ // Apply current edited text immediately.
|
|
|
// Note that as soon as the input box is active, the in-widget value gets priority over any underlying modification of the input buffer
|
|
|
- // FIXME: We actually always render 'buf' when calling DrawList->AddText, making the comment above incorrect.
|
|
|
- // FIXME-OPT: CPU waste to do this every time the widget is active, should mark dirty state from the stb_textedit callbacks.
|
|
|
|
|
|
// User callback
|
|
|
if ((flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_CallbackHistory | ImGuiInputTextFlags_CallbackEdit | ImGuiInputTextFlags_CallbackAlways)) != 0)
|