diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index a7de0498a0..dfbb4535e2 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -322,6 +322,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void create_editor_mixer (); void show_editor_list (bool yn); void set_selected_mixer_strip (TimeAxisView&); + void mixer_strip_width_changed (); void hide_track_in_display (TimeAxisView* tv, bool temporary = false); /* nudge is initiated by transport controls owned by ARDOUR_UI */ diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index 5f321c7931..ec71892235 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -156,6 +156,7 @@ Editor::create_editor_mixer () _session, false); current_mixer_strip->Hiding.connect (sigc::mem_fun(*this, &Editor::current_mixer_strip_hidden)); + current_mixer_strip->WidthChanged.connect (sigc::mem_fun (*this, &Editor::mixer_strip_width_changed)); #ifdef GTKOSX current_mixer_strip->WidthChanged.connect (sigc::mem_fun(*this, &Editor::ensure_all_elements_drawn)); @@ -237,7 +238,16 @@ void Editor::maybe_add_mixer_strip_width (XMLNode& node) { if (current_mixer_strip) { - node.add_property ("mixer-width", enum_2_string (current_mixer_strip->get_width_enum())); + node.add_property ("mixer-width", enum_2_string (editor_mixer_strip_width)); } } +void +Editor::mixer_strip_width_changed () +{ +#ifdef GTKOSX + ensure_all_elements_drawn (); +#endif + + editor_mixer_strip_width = current_mixer_strip->get_width_enum (); +}