diff --git a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h index 50149a2c5b..75e932616f 100644 --- a/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h +++ b/modules/juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h @@ -829,7 +829,7 @@ private: setContentOwned (content, resizeAutomatically); } - void buttonClicked (Button*) override + void buttonClicked (Button* button) override { PopupMenu m; m.addItem (1, TRANS ("Audio/MIDI Settings...")); @@ -839,7 +839,7 @@ private: m.addSeparator(); m.addItem (4, TRANS ("Reset to default state")); - m.showMenuAsync (PopupMenu::Options(), + m.showMenuAsync (PopupMenu::Options().withTargetComponent (button), ModalCallbackFunction::forComponent (menuCallback, this)); } diff --git a/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp b/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp index e679fa0fd0..28f84c9e96 100644 --- a/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp +++ b/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp @@ -102,12 +102,17 @@ public: } } - void cellClicked (int rowNumber, int columnId, const juce::MouseEvent& e) override + void cellClicked (int rowNumber, int columnId, const MouseEvent& e) override { TableListBoxModel::cellClicked (rowNumber, columnId, e); if (rowNumber >= 0 && rowNumber < getNumRows() && e.mods.isPopupMenu()) - owner.createMenuForRow (rowNumber).showMenuAsync (PopupMenu::Options().withDeletionCheck (owner)); + { + owner.createMenuForRow (rowNumber) + .showMenuAsync (PopupMenu::Options().withTargetComponent (e.originalComponent) + .withMousePosition() + .withDeletionCheck (owner)); + } } void deleteKeyPressed (int) override diff --git a/modules/juce_gui_basics/widgets/juce_Slider.cpp b/modules/juce_gui_basics/widgets/juce_Slider.cpp index e567414288..d28f7f459a 100644 --- a/modules/juce_gui_basics/widgets/juce_Slider.cpp +++ b/modules/juce_gui_basics/widgets/juce_Slider.cpp @@ -672,7 +672,7 @@ public: m.addSubMenu (TRANS ("Rotary mode"), rotaryMenu); } - m.showMenuAsync (PopupMenu::Options(), + m.showMenuAsync (PopupMenu::Options().withTargetComponent (owner).withMousePosition(), ModalCallbackFunction::forComponent (sliderMenuCallback, &owner)); } diff --git a/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp b/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp index cf22e16ad3..bb9dd9cb34 100644 --- a/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp +++ b/modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp @@ -912,7 +912,7 @@ void TableHeaderComponent::showColumnChooserMenu (const int columnIdClicked) { m.setLookAndFeel (&getLookAndFeel()); - m.showMenuAsync (PopupMenu::Options(), + m.showMenuAsync (PopupMenu::Options().withTargetComponent (this).withMousePosition(), ModalCallbackFunction::forComponent (tableHeaderMenuCallback, this, columnIdClicked)); } } diff --git a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp index 8baaeb7e51..5ef0bde335 100644 --- a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp +++ b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp @@ -1581,8 +1581,8 @@ void TextEditor::mouseDown (const MouseEvent& e) menuActive = true; - m.showMenuAsync (PopupMenu::Options(), - [safeThis = SafePointer { this }] (int menuResult) + m.showMenuAsync (PopupMenu::Options().withTargetComponent (this).withMousePosition(), + [safeThis = SafePointer { this }] (int menuResult) { if (auto* editor = safeThis.getComponent()) { diff --git a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp index f9aa7a9b56..9b99462e76 100644 --- a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp +++ b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp @@ -1563,7 +1563,7 @@ void CodeEditorComponent::mouseDown (const MouseEvent& e) m.setLookAndFeel (&getLookAndFeel()); addPopupMenuItems (m, &e); - m.showMenuAsync (PopupMenu::Options(), + m.showMenuAsync (PopupMenu::Options().withTargetComponent (this).withMousePosition(), ModalCallbackFunction::forComponent (codeEditorMenuCallback, this)); } else