summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/plugin_selector.cc11
-rw-r--r--gtk2_ardour/plugin_selector.h2
2 files changed, 12 insertions, 1 deletions
diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc
index 338d3aa9ee..a06e24893a 100644
--- a/gtk2_ardour/plugin_selector.cc
+++ b/gtk2_ardour/plugin_selector.cc
@@ -61,6 +61,9 @@ PluginSelector::PluginSelector (PluginManager& mgr)
: ArdourDialog (_("Plugin Manager"), true, false)
, search_clear_button (Stock::CLEAR)
, manager (mgr)
+ , _need_tag_save (false)
+ , _need_status_save (false)
+ , _need_menu_rebuild (false)
, _inhibit_refill (false)
{
set_name ("PluginSelectorWindow");
@@ -786,6 +789,9 @@ PluginSelector::run ()
if (_need_status_save) {
manager.save_statuses();
}
+ if (_need_menu_rebuild) {
+ build_plugin_menu ();
+ }
return (int) r;
}
@@ -929,6 +935,11 @@ PluginSelector::plugin_menu()
void
PluginSelector::build_plugin_menu ()
{
+ if (is_visible ()) {
+ _need_menu_rebuild = true;
+ return;
+ }
+ _need_menu_rebuild = false;
PluginInfoList all_plugs;
all_plugs.insert (all_plugs.end(), manager.ladspa_plugin_info().begin(), manager.ladspa_plugin_info().end());
diff --git a/gtk2_ardour/plugin_selector.h b/gtk2_ardour/plugin_selector.h
index ba09b08f7f..f1be052028 100644
--- a/gtk2_ardour/plugin_selector.h
+++ b/gtk2_ardour/plugin_selector.h
@@ -186,7 +186,7 @@ private:
bool _need_tag_save;
bool _need_status_save;
-
+ bool _need_menu_rebuild;
bool _inhibit_refill;
};