diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 9cb680463e..4a18d0c813 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -816,6 +816,11 @@ Editor::show_window () if (!is_visible ()) { show_all (); + /* XXX: this is a bit unfortunate; it would probably + be nicer if we could just call show () above rather + than needing the show_all () + */ + /* re-hide stuff if necessary */ editor_list_button_toggled (); parameter_changed ("show-summary"); @@ -832,6 +837,10 @@ Editor::show_window () tv = (static_cast(*i)); tv->reset_height (); } + + if (current_mixer_strip) { + current_mixer_strip->hide_things (); + } } present (); diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index ec71892235..ae045d7a45 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -121,7 +121,7 @@ Editor::show_editor_mixer (bool yn) if (current_mixer_strip->get_parent() == 0) { global_hpacker.pack_start (*current_mixer_strip, Gtk::PACK_SHRINK ); global_hpacker.reorder_child (*current_mixer_strip, 0); - current_mixer_strip->show_all (); + current_mixer_strip->show (); } } else { diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 33b012aebb..8794381229 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -1904,3 +1904,9 @@ MixerStrip::plugin_selector() { return _mixer.plugin_selector(); } + +void +MixerStrip::hide_things () +{ + processor_box.hide_things (); +} diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index fb56c5284b..58eb2a0e19 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -107,6 +107,8 @@ class MixerStrip : public RouteUI, public Gtk::EventBox return _mixer_owned; } + void hide_things (); + sigc::signal WidthChanged; /** The delivery that we are handling the level for with our fader has changed */ diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index c5454d59aa..6019f20f7f 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -384,6 +384,12 @@ PluginInsertProcessorEntry::plugin_insert_splitting_changed () } } +void +PluginInsertProcessorEntry::hide_things () +{ + plugin_insert_splitting_changed (); +} + void PluginInsertProcessorEntry::setup_visuals () { @@ -2285,6 +2291,15 @@ ProcessorBox::mixer_strip_delivery_changed (boost::weak_ptr w) } } +void +ProcessorBox::hide_things () +{ + list c = processor_display.children (); + for (list::iterator i = c.begin(); i != c.end(); ++i) { + (*i)->hide_things (); + } +} + ProcessorWindowProxy::ProcessorWindowProxy ( string const & name, XMLNode const * node, diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index a6395fc4ef..bd5f18b947 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -119,6 +119,9 @@ public: void set_enum_width (Width); virtual void set_pixel_width (int) {} + /** Hide any widgets that should be hidden */ + virtual void hide_things () {} + protected: virtual void setup_visuals (); @@ -173,6 +176,8 @@ class PluginInsertProcessorEntry : public ProcessorEntry public: PluginInsertProcessorEntry (boost::shared_ptr, Width); + void hide_things (); + private: void setup_visuals (); void plugin_insert_splitting_changed (); @@ -206,6 +211,8 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD void select_all_inserts (); void select_all_sends (); + void hide_things (); + Gtk::Window* get_processor_ui (boost::shared_ptr) const; void toggle_edit_processor (boost::shared_ptr);