mirror of
https://github.com/Drezil/imgui.git
synced 2025-07-06 13:08:47 +02:00
Tables: Fix settings not being saved in child window (issue 3367) + fix for change in master.
This commit is contained in:
@ -193,7 +193,14 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
|
||||
}
|
||||
|
||||
flags = TableFixFlags(flags);
|
||||
if (outer_window->Flags & ImGuiWindowFlags_NoSavedSettings)
|
||||
|
||||
// Inherit _NoSavedSettings from top-level window (child windows always have _NoSavedSettings set)
|
||||
#ifdef IMGUI_HAS_DOCK
|
||||
ImGuiWindow* window_for_settings = outer_window->RootWindowDockStop;
|
||||
#else
|
||||
ImGuiWindow* window_for_settings = outer_window->RootWindow;
|
||||
#endif
|
||||
if (window_for_settings->Flags & ImGuiWindowFlags_NoSavedSettings)
|
||||
flags |= ImGuiTableFlags_NoSavedSettings;
|
||||
|
||||
// Acquire storage for the table
|
||||
@ -253,8 +260,9 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
|
||||
table->HostIndentX = inner_window->DC.Indent.x;
|
||||
table->HostClipRect = inner_window->ClipRect;
|
||||
table->HostSkipItems = inner_window->SkipItems;
|
||||
table->HostWorkRect = inner_window->WorkRect;
|
||||
table->HostBackupParentWorkRect = inner_window->ParentWorkRect;
|
||||
table->HostCursorMaxPos = inner_window->DC.CursorMaxPos;
|
||||
inner_window->ParentWorkRect = inner_window->WorkRect;
|
||||
|
||||
// Borders
|
||||
// - None ........Content..... Pad .....Content........
|
||||
@ -1067,7 +1075,8 @@ void ImGui::EndTable()
|
||||
// Layout in outer window
|
||||
IM_ASSERT_USER_ERROR(inner_window->IDStack.back() == table->ID + table->InstanceCurrent, "Mismatching PushID/PopID!");
|
||||
PopID();
|
||||
inner_window->WorkRect = table->HostWorkRect;
|
||||
inner_window->WorkRect = inner_window->ParentWorkRect;
|
||||
inner_window->ParentWorkRect = table->HostBackupParentWorkRect;
|
||||
inner_window->SkipItems = table->HostSkipItems;
|
||||
outer_window->DC.CursorPos = table->OuterRect.Min;
|
||||
outer_window->DC.ColumnsOffset.x = 0.0f;
|
||||
|
Reference in New Issue
Block a user