mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-22 11:57:00 +00:00
InputText: Fixed a case where deactivation frame would write to underlying buffer or call CallbackResize although unnecessary, in a frame where the return value was false.
This commit is contained in:
parent
3349296370
commit
b32ef809c3
@ -42,6 +42,9 @@ Breaking changes:
|
|||||||
|
|
||||||
Other changes:
|
Other changes:
|
||||||
|
|
||||||
|
- InputText: Fixed a case where deactivation frame would write to underlying
|
||||||
|
buffer or call CallbackResize although unnecessary, in a frame where the
|
||||||
|
return value was false.
|
||||||
- IO: Added io.ClearEventsQueue() to clear incoming inputs events. (#4921)
|
- IO: Added io.ClearEventsQueue() to clear incoming inputs events. (#4921)
|
||||||
May be useful in conjunction with io.ClearInputsKeys() if you need to clear
|
May be useful in conjunction with io.ClearInputsKeys() if you need to clear
|
||||||
both current inputs state and queued events (e.g. when using blocking native
|
both current inputs state and queued events (e.g. when using blocking native
|
||||||
|
@ -4719,11 +4719,11 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
|
|||||||
// Handle reapplying final data on deactivation (see InputTextDeactivateHook() for details)
|
// Handle reapplying final data on deactivation (see InputTextDeactivateHook() for details)
|
||||||
if (g.InputTextDeactivatedState.ID == id)
|
if (g.InputTextDeactivatedState.ID == id)
|
||||||
{
|
{
|
||||||
if (g.ActiveId != id && IsItemDeactivatedAfterEdit() && !is_readonly)
|
if (g.ActiveId != id && IsItemDeactivatedAfterEdit() && !is_readonly && strcmp(g.InputTextDeactivatedState.TextA.Data, buf) != 0)
|
||||||
{
|
{
|
||||||
apply_new_text = g.InputTextDeactivatedState.TextA.Data;
|
apply_new_text = g.InputTextDeactivatedState.TextA.Data;
|
||||||
apply_new_text_length = g.InputTextDeactivatedState.TextA.Size - 1;
|
apply_new_text_length = g.InputTextDeactivatedState.TextA.Size - 1;
|
||||||
value_changed |= (strcmp(g.InputTextDeactivatedState.TextA.Data, buf) != 0);
|
value_changed = true;
|
||||||
//IMGUI_DEBUG_LOG("InputText(): apply Deactivated data for 0x%08X: \"%.*s\".\n", id, apply_new_text_length, apply_new_text);
|
//IMGUI_DEBUG_LOG("InputText(): apply Deactivated data for 0x%08X: \"%.*s\".\n", id, apply_new_text_length, apply_new_text);
|
||||||
}
|
}
|
||||||
g.InputTextDeactivatedState.ID = 0;
|
g.InputTextDeactivatedState.ID = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user