|
|
@@ -2841,9 +2841,9 @@ static int ChildWindowComparer(const void* lhs, const void* rhs)
|
|
|
return (a->BeginOrderWithinParent - b->BeginOrderWithinParent);
|
|
|
}
|
|
|
|
|
|
-static void AddWindowToSortedBuffer(ImVector<ImGuiWindow*>& out_sorted_windows, ImGuiWindow* window)
|
|
|
+static void AddWindowToSortedBuffer(ImVector<ImGuiWindow*>* out_sorted_windows, ImGuiWindow* window)
|
|
|
{
|
|
|
- out_sorted_windows.push_back(window);
|
|
|
+ out_sorted_windows->push_back(window);
|
|
|
if (window->Active)
|
|
|
{
|
|
|
int count = window->DC.ChildWindows.Size;
|
|
|
@@ -3034,7 +3034,7 @@ void ImGui::EndFrame()
|
|
|
ImGuiWindow* window = g.Windows[i];
|
|
|
if (window->Active && (window->Flags & ImGuiWindowFlags_ChildWindow)) // if a child is active its parent will add it
|
|
|
continue;
|
|
|
- AddWindowToSortedBuffer(g.WindowsSortBuffer, window);
|
|
|
+ AddWindowToSortedBuffer(&g.WindowsSortBuffer, window);
|
|
|
}
|
|
|
|
|
|
IM_ASSERT(g.Windows.Size == g.WindowsSortBuffer.Size); // we done something wrong
|
|
|
@@ -4547,7 +4547,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
|
|
|
{
|
|
|
// Adjust passed "client size" to become a "window size"
|
|
|
window->SizeContentsExplicit = g.NextWindowData.ContentSizeVal;
|
|
|
- window->SizeContentsExplicit.y += window->TitleBarHeight() + window->MenuBarHeight();
|
|
|
+ if (window->SizeContentsExplicit.y != 0.0f)
|
|
|
+ window->SizeContentsExplicit.y += window->TitleBarHeight() + window->MenuBarHeight();
|
|
|
g.NextWindowData.ContentSizeCond = 0;
|
|
|
}
|
|
|
else if (first_begin_of_the_frame)
|