Don't show DSP stats of inserts that don't collect them.
[ardour.git] / gtk2_ardour / generic_pluginui.cc
index 055129b704220b5953b8bedd97695daf73edaf6a..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;
        }