diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp index 22668e1044..a03e01b6bc 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp @@ -541,6 +541,7 @@ struct MenuWindow : public Component auto resultID = options.hasWatchedComponentBeenDeleted() ? 0 : getResultItemID (item); exitModalState (resultID); + exitingModalState = true; if (makeInvisible && deletionChecker != nullptr) setVisible (false); @@ -739,6 +740,9 @@ struct MenuWindow : public Component if (! treeContains (currentlyModalWindow)) return false; + if (exitingModalState) + return false; + return true; } @@ -1323,6 +1327,7 @@ struct MenuWindow : public Component uint32 windowCreationTime, lastFocusedTime, timeEnteredCurrentChildComp; OwnedArray mouseSourceStates; float scaleFactor; + bool exitingModalState = false; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MenuWindow) };