Browse Source

InputTextMultiline: Fixed label size not being included into window contents rect unless the whole widget is clipped.

ocornut 4 years ago
parent
commit
0608887fb5
2 changed files with 5 additions and 1 deletions
  1. 2 0
      docs/CHANGELOG.txt
  2. 3 1
      imgui_widgets.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -42,6 +42,8 @@ Breaking Changes:
 
 Other Changes:
 
+- InputTextMultiline: Fixed label size not being included into window contents rect unless
+  the whole widget is clipped.
 - imgui_freetype: Fixed crash when FT_Render_Glyph() fails to render a glyph and returns NULL
   (which apparently happens with Freetype 2.11). (#4394, #4145?).
 

+ 3 - 1
imgui_widgets.cpp

@@ -3969,13 +3969,15 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
     ImGuiItemStatusFlags item_status_flags = 0;
     if (is_multiline)
     {
+        ImVec2 backup_pos = window->DC.CursorPos;
+        ItemSize(total_bb, style.FramePadding.y);
         if (!ItemAdd(total_bb, id, &frame_bb, ImGuiItemAddFlags_Focusable))
         {
-            ItemSize(total_bb, style.FramePadding.y);
             EndGroup();
             return false;
         }
         item_status_flags = g.LastItemData.StatusFlags;
+        window->DC.CursorPos = backup_pos;
 
         // We reproduce the contents of BeginChildFrame() in order to provide 'label' so our window internal data are easier to read/debug.
         PushStyleColor(ImGuiCol_ChildBg, style.Colors[ImGuiCol_FrameBg]);