MCPcopy Create free account
hub / github.com/DISTRHO/Cardinal / UpdateWindowInFocusOrderList

Function UpdateWindowInFocusOrderList

plugins/Cardinal/src/DearImGui/imgui.cpp:5290–5311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5288}
5289
5290static void UpdateWindowInFocusOrderList(ImGuiWindow* window, bool just_created, ImGuiWindowFlags new_flags)
5291{
5292 ImGuiContext& g = *GImGui;
5293
5294 const bool new_is_explicit_child = (new_flags & ImGuiWindowFlags_ChildWindow) != 0;
5295 const bool child_flag_changed = new_is_explicit_child != window->IsExplicitChild;
5296 if ((just_created || child_flag_changed) && !new_is_explicit_child)
5297 {
5298 IM_ASSERT(!g.WindowsFocusOrder.contains(window));
5299 g.WindowsFocusOrder.push_back(window);
5300 window->FocusOrder = (short)(g.WindowsFocusOrder.Size - 1);
5301 }
5302 else if (!just_created && child_flag_changed && new_is_explicit_child)
5303 {
5304 IM_ASSERT(g.WindowsFocusOrder[window->FocusOrder] == window);
5305 for (int n = window->FocusOrder + 1; n < g.WindowsFocusOrder.Size; n++)
5306 g.WindowsFocusOrder[n]->FocusOrder--;
5307 g.WindowsFocusOrder.erase(g.WindowsFocusOrder.Data + window->FocusOrder);
5308 window->FocusOrder = -1;
5309 }
5310 window->IsExplicitChild = new_is_explicit_child;
5311}
5312
5313static ImGuiWindow* CreateNewWindow(const char* name, ImGuiWindowFlags flags)
5314{

Callers 2

CreateNewWindowFunction · 0.85
BeginMethod · 0.85

Calls 3

push_backMethod · 0.80
eraseMethod · 0.80
containsMethod · 0.45

Tested by

no test coverage detected