diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 88e6e848e..3043b3b28 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -43,6 +43,10 @@ Breaking Changes: Other Changes: +- InputText: + - InputTextMultiline: fixed an issue processing deactivation logic when an active + multi-line edit is clipped due to being out of view. + ----------------------------------------------------------------------- VERSION 1.92.7 (Released 2026-04-02) diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index ee1c2796d..d96c5711e 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -4709,7 +4709,8 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ { ImVec2 backup_pos = window->DC.CursorPos; ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemFlags_Inputable)) + bool no_clip = (g.InputTextDeactivatedState.ID == id) || (g.ActiveId == id) || (id == g.NavActivateId); // Mimic some of ItemAdd() logic + add InputTextDeactivatedState.ID check. + if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemFlags_Inputable) && !no_clip) { EndGroup(); return false; @@ -4735,7 +4736,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_ g.NavActivateId = backup_activate_id; PopStyleVar(3); PopStyleColor(); - if (!child_visible) + if (!child_visible && !no_clip) { EndChild(); EndGroup();