Browse Source

Popups: fixed CloseInactivePopups() so that right-clicking to close one level of popups in a popups stack won't close the whole stack. This is done by properly refocusing the lower level popup. Fixes 87ae40843c (~#439)

pull/1692/head
omar 7 years ago
parent
commit
59a89774d7
  1. 6
      imgui.cpp

6
imgui.cpp

@ -2802,11 +2802,9 @@ void ImGui::EndFrame()
// With right mouse button we close popups without changing focus
// (The left mouse button path calls FocusWindow which will lead NewFrame->CloseInactivePopups to trigger)
if (g.IO.MouseClicked[1])
{
CloseInactivePopups(g.HoveredWindow);
}
}
}
// Sort the window list so that all child windows are after their parent
// We cannot do that on FocusWindow() because childs may not exist yet
@ -3605,8 +3603,8 @@ static void CloseInactivePopups(ImGuiWindow* ref_window)
break;
}
}
if (n < g.OpenPopupStack.Size) // This test is not required but it allows to set a useful breakpoint on the line below
g.OpenPopupStack.resize(n);
if (n < g.OpenPopupStack.Size) // This test is not required but it allows to set a convenient breakpoint on the block below
ClosePopupToLevel(n);
}
static ImGuiWindow* GetFrontMostModalRootWindow()

Loading…
Cancel
Save