|
@@ -9230,14 +9230,15 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImGuiComboF
|
|
|
|
|
|
// Peak into expected window size so we can position it
|
|
// Peak into expected window size so we can position it
|
|
if (ImGuiWindow* popup_window = FindWindowByName(name))
|
|
if (ImGuiWindow* popup_window = FindWindowByName(name))
|
|
- {
|
|
|
|
- ImVec2 size_contents = CalcSizeContents(popup_window);
|
|
|
|
- ImVec2 size_expected = CalcSizeAfterConstraint(popup_window, CalcSizeAutoFit(popup_window, size_contents));
|
|
|
|
- if (flags & ImGuiComboFlags_PopupAlignLeft)
|
|
|
|
- popup_window->AutoPosLastDirection = ImGuiDir_Left;
|
|
|
|
- ImVec2 pos = FindBestWindowPosForPopup(frame_bb.GetBL(), size_expected, &popup_window->AutoPosLastDirection, frame_bb, ImGuiPopupPositionPolicy_ComboBox);
|
|
|
|
- SetNextWindowPos(pos);
|
|
|
|
- }
|
|
|
|
|
|
+ if (popup_window->WasActive)
|
|
|
|
+ {
|
|
|
|
+ ImVec2 size_contents = CalcSizeContents(popup_window);
|
|
|
|
+ ImVec2 size_expected = CalcSizeAfterConstraint(popup_window, CalcSizeAutoFit(popup_window, size_contents));
|
|
|
|
+ if (flags & ImGuiComboFlags_PopupAlignLeft)
|
|
|
|
+ popup_window->AutoPosLastDirection = ImGuiDir_Left;
|
|
|
|
+ ImVec2 pos = FindBestWindowPosForPopup(frame_bb.GetBL(), size_expected, &popup_window->AutoPosLastDirection, frame_bb, ImGuiPopupPositionPolicy_ComboBox);
|
|
|
|
+ SetNextWindowPos(pos);
|
|
|
|
+ }
|
|
|
|
|
|
ImGuiWindowFlags window_flags = ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_Popup | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings;
|
|
ImGuiWindowFlags window_flags = ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_Popup | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings;
|
|
if (!Begin(name, NULL, window_flags))
|
|
if (!Begin(name, NULL, window_flags))
|