mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-18 06:06:35 +00:00
Popups: calling OpenPopup() on already open popup doesn't close it's child (#126)
It think it makes more sense? Maybe? Note that calling OpenPopup() every frame probably doesn't make sense.
This commit is contained in:
parent
7847100ad8
commit
78dc54ab3d
@ -3054,9 +3054,12 @@ void ImGui::OpenPopup(const char* str_id)
|
||||
ImGuiState& g = *GImGui;
|
||||
ImGuiWindow* window = GetCurrentWindow();
|
||||
const ImGuiID id = window->GetID(str_id);
|
||||
g.OpenedPopupStack.resize(g.CurrentPopupStack.size() + 1);
|
||||
if (g.OpenedPopupStack.back().PopupID != id)
|
||||
g.OpenedPopupStack.back() = ImGuiPopupRef(id, window, window->GetID("##menus"));
|
||||
size_t current_stack_size = g.CurrentPopupStack.size();
|
||||
ImGuiPopupRef popup_ref = ImGuiPopupRef(id, window, window->GetID("##menus")); // Tagged as new ref because constructor sets Window to NULL (we are passing the ParentWindow info here)
|
||||
if (g.OpenedPopupStack.size() < current_stack_size + 1)
|
||||
g.OpenedPopupStack.push_back(popup_ref);
|
||||
else if (g.OpenedPopupStack[current_stack_size].PopupID != id)
|
||||
g.OpenedPopupStack[current_stack_size] = popup_ref;
|
||||
}
|
||||
|
||||
static void CloseInactivePopups()
|
||||
|
Loading…
Reference in New Issue
Block a user