From 071af1c2857b597830e735d8766c17a095845f14 Mon Sep 17 00:00:00 2001 From: Tom Poole Date: Thu, 28 Jun 2018 10:42:08 +0100 Subject: [PATCH] Fixed an issue cleaning up a PopupMenu LookAndFeel --- modules/juce_gui_basics/menus/juce_PopupMenu.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp index e4b69cbcea..460a544525 100644 --- a/modules/juce_gui_basics/menus/juce_PopupMenu.cpp +++ b/modules/juce_gui_basics/menus/juce_PopupMenu.cpp @@ -40,7 +40,7 @@ struct PopupMenu::HelperClasses { class MouseSourceState; -class MenuWindow; +struct MenuWindow; static bool canBeTriggered (const PopupMenu::Item& item) noexcept { return item.isEnabled && item.itemID != 0 && ! item.isSectionHeader; } static bool hasActiveSubMenu (const PopupMenu::Item& item) noexcept { return item.isEnabled && item.subMenu != nullptr && item.subMenu->items.size() > 0; } @@ -189,9 +189,8 @@ private: }; //============================================================================== -class MenuWindow : public Component +struct MenuWindow : public Component { -public: MenuWindow (const PopupMenu& menu, MenuWindow* parentWindow, const Options& opts, bool alignToRectangle, bool shouldDismissOnMouseUp, ApplicationCommandManager** manager, float parentScaleFactor = 1.0f) @@ -1739,8 +1738,13 @@ bool JUCE_CALLTYPE PopupMenu::dismissAllActiveMenus() auto numWindows = windows.size(); for (int i = numWindows; --i >= 0;) + { if (auto* pmw = windows[i]) + { pmw->dismissMenu (nullptr); + pmw->setLookAndFeel (nullptr); + } + } return numWindows > 0; }