Don't show DSP stats of inserts that don't collect them.
[ardour.git] / gtk2_ardour / generic_pluginui.cc
index 1e48986a282d5c8b5654cc068088005734e77e89..b930c14b850e1470bd6dd5e6b14ca9390abcc8e1 100644 (file)
@@ -157,7 +157,9 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
                pack_end (plugin_analysis_expander, false, false);
        }
 
-       pack_end (cpuload_expander, false, false);
+       if (insert->provides_stats ()) {
+               pack_end (cpuload_expander, false, false);
+       }
 
        if (!plugin->get_docs().empty()) {
                pack_end (description_expander, false, false);
@@ -209,6 +211,7 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
                scroller.set_name ("PluginEditor");
        } else {
                scroller.signal_size_request().connect (sigc::mem_fun(*this, &GenericPluginUI::scroller_size_request));
+               scroller.signal_realize().connect (sigc::mem_fun(scroller, &Widget::queue_resize));
                scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_NEVER);
        }
 
@@ -228,15 +231,15 @@ GenericPluginUI::scroller_size_request (Gtk::Requisition* a)
 {
        GtkRequisition request = hpacker.size_request();
 
-       Glib::RefPtr<Gdk::Window> window (get_window());
+       Glib::RefPtr<Gdk::Window> window (scroller.get_window());
        Glib::RefPtr<Gdk::Screen> screen;
 
        if (window) {
-               screen = get_screen();
+               screen = window->get_screen();
        }
 
        if (!screen) {
-               a->width = request.width;
+               a->width = min(1024, request.width);
                return;
        }
 
@@ -732,7 +735,6 @@ GenericPluginUI::midi_refill_patches ()
                                for (MIDI::Name::PatchNameList::const_iterator j = patches.begin(); j != patches.end(); ++j) {
                                        const std::string pgm = (*j)->name ();
                                        MIDI::Name::PatchPrimaryKey const& key = (*j)->patch_primary_key ();
-                                       assert ((*i)->number () == key.bank());
                                        const uint32_t bp = (key.bank() << 7) | key.program();
                                        midi_pgmsel[chn]->AddMenuElem (MenuElemNoMnemonic (pgm, sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::midi_bank_patch_select), chn, bp)));
                                        pgm_names[bp] = pgm;