From 5cb6176efa8b397f049d82d0f004b774aa7b96e6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 3 Oct 2026 19:30:37 +0000 Subject: [PATCH] Tables: reset display order in non-reorderable tables Co-authored-by: Anujgiri1279 <122677344+Anujgiri1279@users.noreply.github.com> --- imgui_tables.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/imgui_tables.cpp b/imgui_tables.cpp index b3e0458eb..12d17d6bd 100644 --- a/imgui_tables.cpp +++ b/imgui_tables.cpp @@ -4107,6 +4107,13 @@ static int IMGUI_CDECL TableFixDisplayOrderComparer(const void* lhs, const void* // Fix invalid display order data: compact values (0,1,3 -> 0,1,2); preserve relative order (0,3,1 -> 0,2,1); deduplicate (0,4,1,1 -> 0,3,1,2) void ImGui::TableFixDisplayOrder(ImGuiTable* table) { + if ((table->Flags & ImGuiTableFlags_Reorderable) == 0) + { + for (int n = 0; n < table->ColumnsCount; n++) + table->DisplayOrderToIndex[n] = table->Columns[n].DisplayOrder = (ImGuiTableColumnIdx)n; + return; + } + ImGuiContext& g = *GImGui; g.TempBuffer.reserve((int)(sizeof(ImGuiTableFixDisplayOrderColumnData) * table->ColumnsCount)); // FIXME: Maybe wrap those two lines as a helper. ImGuiTableFixDisplayOrderColumnData* fdo_columns = (ImGuiTableFixDisplayOrderColumnData*)(void*)g.TempBuffer.Data;