Browse Source

Tables: Request user to submit contents when outer host-window is requesting auto-resize. (#6510)

ocornut 2 years ago
parent
commit
3aceb61059
2 changed files with 7 additions and 4 deletions
  1. 2 0
      docs/CHANGELOG.txt
  2. 5 4
      imgui_tables.cpp

+ 2 - 0
docs/CHANGELOG.txt

@@ -56,6 +56,8 @@ Other changes:
 - Nav: Tabbing always enable nav highlight when ImGuiConfigFlags_NavEnableKeyboard is set.
   Previously was inconsistent and only enabled when stepping through a non-input item.
   (#6802, #3092, #5759, #787)
+- Tables: Request user to submit contents when outer host-window is requesting auto-resize,
+  so a scrolling table can contribute to initial window size. (#6510)
 - Tables: Fixed subtle drawing overlap between borders in some situations.
 - Tables: Fixed bottom-most and right-most outer border offset by one. (#6765, #3752) [@v-ein]
 - Tables: Fixed top-most outer border being drawn with both TableBorderLight and TableBorderStrong

+ 5 - 4
imgui_tables.cpp

@@ -322,10 +322,11 @@ bool    ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
     ImVec2 actual_outer_size = CalcItemSize(outer_size, ImMax(avail_size.x, 1.0f), use_child_window ? ImMax(avail_size.y, 1.0f) : 0.0f);
     ImRect outer_rect(outer_window->DC.CursorPos, outer_window->DC.CursorPos + actual_outer_size);
     if (use_child_window && IsClippedEx(outer_rect, 0))
-    {
-        ItemSize(outer_rect);
-        return false;
-    }
+        if (outer_window->AutoFitFramesX <= 0 && outer_window->AutoFitFramesY <= 0)
+        {
+            ItemSize(outer_rect);
+            return false;
+        }
 
     // Acquire storage for the table
     ImGuiTable* table = g.Tables.GetOrAddByKey(id);