|
@@ -10887,7 +10887,8 @@ void ImGui::ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_
|
|
ImGuiPopupData prev_popup = g.OpenPopupStack[remaining];
|
|
ImGuiPopupData prev_popup = g.OpenPopupStack[remaining];
|
|
g.OpenPopupStack.resize(remaining);
|
|
g.OpenPopupStack.resize(remaining);
|
|
|
|
|
|
- if (restore_focus_to_window_under_popup)
|
|
|
|
|
|
+ // Restore focus (unless popup window was not yet submitted, and didn't have a chance to take focus anyhow. See #7325 for an edge case)
|
|
|
|
+ if (restore_focus_to_window_under_popup && prev_popup.Window)
|
|
{
|
|
{
|
|
ImGuiWindow* popup_window = prev_popup.Window;
|
|
ImGuiWindow* popup_window = prev_popup.Window;
|
|
ImGuiWindow* focus_window = (popup_window && popup_window->Flags & ImGuiWindowFlags_ChildMenu) ? popup_window->ParentWindow : prev_popup.RestoreNavWindow;
|
|
ImGuiWindow* focus_window = (popup_window && popup_window->Flags & ImGuiWindowFlags_ChildMenu) ? popup_window->ParentWindow : prev_popup.RestoreNavWindow;
|