From 03a0b00a346078e6a7aee39d25ce3ae9fa991607 Mon Sep 17 00:00:00 2001 From: ocornut Date: Fri, 3 Apr 2026 16:25:57 +0200 Subject: [PATCH] InputTextMultiline: fixed an issue processing deactivation logic when an active multi-line edit is clipped due to being out of view. --- docs/CHANGELOG.txt | 4 ++++ imgui_widgets.cpp | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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();