1
0
mirror of https://github.com/ocornut/imgui.git synced 2024-11-15 19:43:28 +01:00

Docking, Modal: Fixed a crash when opening popup from a parent which is being docked on the same frame. (#5401)

Ideally we should untangle the purpose of parent_window_in_stack / ParentWindowInBeginStack better.
This commit is contained in:
ocornut 2022-06-16 18:43:33 +02:00
parent 101aec95d9
commit 506717390f
2 changed files with 2 additions and 1 deletions

View File

@ -229,6 +229,7 @@ Docking+Viewports Branch:
when io.ConfigDockingAlwaysTabBar is true. (#5324) [@rokups]
- Docking: Fixed incorrect focus highlight on docking node when focusing empty central node
or a child window which was manually injected into a dockspace window.
- Docking, Modal: Fixed a crash when opening popup from a parent which is being docked on the same frame. (#5401)
- Viewports: Fixed translating a host viewport from briefly altering the size of AlwaysAutoResize windows. (#5057)
- Viewports: Fixed main viewport size not matching ImDrawData::DisplaySize for one frame during resize
when multi-viewports are disabled. (#4900)

View File

@ -6464,7 +6464,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
}
// Parent window is latched only on the first call to Begin() of the frame, so further append-calls can be done from a different window stack
ImGuiWindow* parent_window_in_stack = window->DockIsActive ? window->DockNode->HostWindow : g.CurrentWindowStack.empty() ? NULL : g.CurrentWindowStack.back().Window;
ImGuiWindow* parent_window_in_stack = (window->DockIsActive && window->DockNode->HostWindow) ? window->DockNode->HostWindow : g.CurrentWindowStack.empty() ? NULL : g.CurrentWindowStack.back().Window;
ImGuiWindow* parent_window = first_begin_of_the_frame ? ((flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup)) ? parent_window_in_stack : NULL) : window->ParentWindow;
IM_ASSERT(parent_window != NULL || !(flags & ImGuiWindowFlags_ChildWindow));