diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index e2ed1a8d11..1b8ce06dda 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -504,9 +504,6 @@ MixerStrip::set_width (Width w, void* owner) ((Gtk::Label*)panners.pan_automation_state_button.get_child())->set_text (panners.astate_string(_route->panner().automation_state())); Gtkmm2ext::set_size_request_to_display_given_text (name_button, "long", 2, 2); set_size_request (-1, -1); -#ifdef GTKOSX - WidthChanged(); -#endif break; case Narrow: @@ -536,6 +533,9 @@ MixerStrip::set_width (Width w, void* owner) update_output_display (); mix_group_changed (0); name_changed (0); +#ifdef GTKOSX + WidthChanged(); +#endif } void diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 07c6f7c9bb..558a7469ab 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -312,7 +312,9 @@ Mixer_UI::add_strip (Session::RouteList& routes) route->name_changed.connect (bind (mem_fun(*this, &Mixer_UI::strip_name_changed), strip)); strip->GoingAway.connect (bind (mem_fun(*this, &Mixer_UI::remove_strip), strip)); - +#ifdef GTKOSX + strip->WidthChanged.connect (mem_fun(*this, &Mixer_UI::queue_draw_all_strips)); +#endif strip->signal_button_release_event().connect (bind (mem_fun(*this, &Mixer_UI::strip_button_release_event), strip)); } @@ -743,6 +745,30 @@ Mixer_UI::redisplay_track_list () } } +#ifdef GTKOSX +void +Mixer_UI::queue_draw_all_strips () +{ + TreeModel::Children rows = track_model->children(); + TreeModel::Children::iterator i; + long order; + + for (order = 0, i = rows.begin(); i != rows.end(); ++i, ++order) { + MixerStrip* strip = (*i)[track_columns.strip]; + + if (strip == 0) { + continue; + } + + bool visible = (*i)[track_columns.visible]; + + if (visible) { + strip->queue_draw(); + } + } +} +#endif + void Mixer_UI::set_auto_rebinding( bool val ) { diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h index 166d108624..99a2682f2a 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -152,6 +152,9 @@ class Mixer_UI : public Gtk::Window void redisplay_track_list (); bool no_track_list_redisplay; bool track_display_button_press (GdkEventButton*); +#ifdef GTKOSX + void queue_draw_all_strips (); +#endif void track_list_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&); void track_list_delete (const Gtk::TreeModel::Path&);