Browse Source

Tables: Return false when window is Collapsed (consistent + helpful for doc) + Fix empty context menu.

omar 5 years ago
parent
commit
046fad01f1
1 changed files with 9 additions and 6 deletions
  1. 9 6
      imgui_tables.cpp

+ 9 - 6
imgui_tables.cpp

@@ -155,6 +155,8 @@ bool    ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
 {
 {
     ImGuiContext& g = *GImGui;
     ImGuiContext& g = *GImGui;
     ImGuiWindow* outer_window = GetCurrentWindow();
     ImGuiWindow* outer_window = GetCurrentWindow();
+    if (outer_window->SkipItems) // Consistent with other tables + beneficial side effect that assert on miscalling EndTable() will be more visible.
+        return false;
 
 
     // Sanity checks
     // Sanity checks
     IM_ASSERT(columns_count > 0 && columns_count < IMGUI_TABLE_MAX_COLUMNS && "Only 0..63 columns allowed!");
     IM_ASSERT(columns_count > 0 && columns_count < IMGUI_TABLE_MAX_COLUMNS && "Only 0..63 columns allowed!");
@@ -1839,12 +1841,13 @@ void    ImGui::TableAutoHeaders()
 
 
     // Context Menu
     // Context Menu
     if (open_context_popup != INT_MAX)
     if (open_context_popup != INT_MAX)
-    {
-        table->IsContextPopupOpen = true;
-        table->ContextPopupColumn = (ImS8)open_context_popup;
-        table->InstanceInteracted = table->InstanceNo;
-        OpenPopup("##TableContextMenu");
-    }
+        if (table->Flags & (ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable | ImGuiTableFlags_Hideable))
+        {
+            table->IsContextPopupOpen = true;
+            table->ContextPopupColumn = (ImS8)open_context_popup;
+            table->InstanceInteracted = table->InstanceNo;
+            OpenPopup("##TableContextMenu");
+        }
 }
 }
 
 
 // Emit a column header (text + optional sort order)
 // Emit a column header (text + optional sort order)