MCPcopy Create free account
hub / github.com/RenderKit/embree / UpdateWindowInFocusOrderList

Function UpdateWindowInFocusOrderList

tutorials/common/imgui/imgui.cpp:5644–5665  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5642}
5643
5644static void UpdateWindowInFocusOrderList(ImGuiWindow* window, bool just_created, ImGuiWindowFlags new_flags)
5645{
5646 ImGuiContext& g = *GImGui;
5647
5648 const bool new_is_explicit_child = (new_flags & ImGuiWindowFlags_ChildWindow) != 0 && ((new_flags & ImGuiWindowFlags_Popup) == 0 || (new_flags & ImGuiWindowFlags_ChildMenu) != 0);
5649 const bool child_flag_changed = new_is_explicit_child != window->IsExplicitChild;
5650 if ((just_created || child_flag_changed) && !new_is_explicit_child)
5651 {
5652 IM_ASSERT(!g.WindowsFocusOrder.contains(window));
5653 g.WindowsFocusOrder.push_back(window);
5654 window->FocusOrder = (short)(g.WindowsFocusOrder.Size - 1);
5655 }
5656 else if (!just_created && child_flag_changed && new_is_explicit_child)
5657 {
5658 IM_ASSERT(g.WindowsFocusOrder[window->FocusOrder] == window);
5659 for (int n = window->FocusOrder + 1; n < g.WindowsFocusOrder.Size; n++)
5660 g.WindowsFocusOrder[n]->FocusOrder--;
5661 g.WindowsFocusOrder.erase(g.WindowsFocusOrder.Data + window->FocusOrder);
5662 window->FocusOrder = -1;
5663 }
5664 window->IsExplicitChild = new_is_explicit_child;
5665}
5666
5667static ImGuiWindow* CreateNewWindow(const char* name, ImGuiWindowFlags flags)
5668{

Callers 1

BeginMethod · 0.85

Calls 1

push_backMethod · 0.45

Tested by

no test coverage detected