mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-24 15:50:25 +01:00
Fix for using tooltips within popup #126 - will need to rewrite the sorting/layering system shortly.
This commit is contained in:
parent
a3086f40fe
commit
93c9777165
15
imgui.cpp
15
imgui.cpp
@ -2174,6 +2174,7 @@ void ImGui::Render()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Gather windows to render
|
// Gather windows to render
|
||||||
|
// FIXME-OPT: Rework this in a more performance conscious way.
|
||||||
g.RenderDrawLists.resize(0);
|
g.RenderDrawLists.resize(0);
|
||||||
for (size_t i = 0; i != g.Windows.size(); i++)
|
for (size_t i = 0; i != g.Windows.size(); i++)
|
||||||
{
|
{
|
||||||
@ -2184,7 +2185,13 @@ void ImGui::Render()
|
|||||||
for (size_t i = 0; i != g.Windows.size(); i++)
|
for (size_t i = 0; i != g.Windows.size(); i++)
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = g.Windows[i];
|
ImGuiWindow* window = g.Windows[i];
|
||||||
if (window->Visible && (window->Flags & (ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)))
|
if (window->Visible && (window->Flags & ImGuiWindowFlags_Popup) != 0)
|
||||||
|
AddWindowToRenderList(window);
|
||||||
|
}
|
||||||
|
for (size_t i = 0; i != g.Windows.size(); i++)
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = g.Windows[i];
|
||||||
|
if (window->Visible && (window->Flags & ImGuiWindowFlags_Tooltip) != 0)
|
||||||
AddWindowToRenderList(window);
|
AddWindowToRenderList(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2992,7 +2999,8 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
|
|||||||
window->Visible = true;
|
window->Visible = true;
|
||||||
|
|
||||||
// New windows appears in front
|
// New windows appears in front
|
||||||
if (!(flags & ImGuiWindowFlags_ChildWindow))
|
if (!(flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Tooltip))
|
||||||
|
{
|
||||||
if (window->LastFrameDrawn < current_frame - 1)
|
if (window->LastFrameDrawn < current_frame - 1)
|
||||||
{
|
{
|
||||||
FocusWindow(window);
|
FocusWindow(window);
|
||||||
@ -3004,6 +3012,7 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
|
|||||||
window->PosFloat = g.IO.MousePos;
|
window->PosFloat = g.IO.MousePos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window->LastFrameDrawn = current_frame;
|
window->LastFrameDrawn = current_frame;
|
||||||
window->ClipRectStack.resize(0);
|
window->ClipRectStack.resize(0);
|
||||||
@ -9461,11 +9470,13 @@ void ImGui::ShowTestWindow(bool* opened)
|
|||||||
{
|
{
|
||||||
ImGui::BeginPopup(&popup_open);
|
ImGui::BeginPopup(&popup_open);
|
||||||
for (size_t i = 0; i < IM_ARRAYSIZE(fishes); i++)
|
for (size_t i = 0; i < IM_ARRAYSIZE(fishes); i++)
|
||||||
|
{
|
||||||
if (ImGui::Selectable(fishes[i], false))
|
if (ImGui::Selectable(fishes[i], false))
|
||||||
{
|
{
|
||||||
selected_fish = i;
|
selected_fish = i;
|
||||||
popup_open = false;
|
popup_open = false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
ImGui::EndPopup();
|
ImGui::EndPopup();
|
||||||
}
|
}
|
||||||
ImGui::TreePop();
|
ImGui::TreePop();
|
||||||
|
Loading…
Reference in New Issue
Block a user