Browse Source

InputText: Fixed an edge case crash that would happen if another widget sharing the same ID is being swapped with an InputText that has yet to be activated.

pull/2379/head
omar 6 years ago
parent
commit
cc3be5d428
  1. 2
      docs/CHANGELOG.txt
  2. 4
      imgui_widgets.cpp

2
docs/CHANGELOG.txt

@ -38,6 +38,8 @@ Other Changes:
- InputInt, InputFloat, InputScalar: Fix to keep the label of the +/- buttons centered when
style.FramePadding.x is abnormally larger than style.FramePadding.y. Since the buttons are
meant to be square (to align with e.g. color button) we always use FramePadding.y. (#2367)
- InputText: Fixed an edge case crash that would happen if another widget sharing the same ID
is being swapped with an InputText that has yet to be activated.
- Examples: OpenGL: Fix for OSX not supporting OpenGL 4.5, we don't try to read GL_CLIP_ORIGIN
even if the OpenGL headers/loader happens to define the value. (#2366, #2186)

4
imgui_widgets.cpp

@ -3278,6 +3278,10 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
clear_active_id = true;
}
// We have an edge case if ActiveId was set through another widget (e.g. widget being swapped)
if (g.ActiveId == id && state == NULL)
ClearActiveID();
bool value_changed = false;
bool enter_pressed = false;
int backup_current_text_length = 0;

Loading…
Cancel
Save