diff --git a/gtk2_ardour/group_tabs.cc b/gtk2_ardour/group_tabs.cc index 938a151b78..03554f72eb 100644 --- a/gtk2_ardour/group_tabs.cc +++ b/gtk2_ardour/group_tabs.cc @@ -86,7 +86,10 @@ GroupTabs::on_button_press_event (GdkEventButton* ev) } else if (ev->button == 3) { RouteGroup* g = t ? t->group : 0; - get_menu(g)->popup (ev->button, ev->time); + Menu* m = get_menu (g); + if (m) { + m->popup (ev->button, ev->time); + } } diff --git a/gtk2_ardour/mixer_group_tabs.cc b/gtk2_ardour/mixer_group_tabs.cc index 621f57c838..a261fc8ec9 100644 --- a/gtk2_ardour/mixer_group_tabs.cc +++ b/gtk2_ardour/mixer_group_tabs.cc @@ -162,6 +162,10 @@ MixerGroupTabs::reflect_tabs (list const & tabs) Gtk::Menu* MixerGroupTabs::get_menu (RouteGroup* g) { + if (g == 0) { + return 0; + } + using namespace Menu_Helpers; delete _menu; diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 073feaf339..646d55ff6b 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -605,9 +605,7 @@ MixerStrip::set_width_enum (Width w, void* owner) update_output_display (); route_group_changed (0); name_changed (); -#ifdef GTKOSX - WidthChanged(); -#endif + WidthChanged (); } void diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 6b7ffb44ce..46cc572200 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -98,9 +98,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void set_route (boost::shared_ptr); void set_button_names (); -#ifdef GTKOSX sigc::signal WidthChanged; -#endif static sigc::signal > SwitchIO; diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 1c31f400ff..eb79d8042c 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -338,9 +338,7 @@ Mixer_UI::add_strip (RouteList& routes) route->NameChanged.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->WidthChanged.connect (mem_fun(*this, &Mixer_UI::strip_width_changed)); strip->signal_button_release_event().connect (bind (mem_fun(*this, &Mixer_UI::strip_button_release_event), strip)); } @@ -774,10 +772,12 @@ Mixer_UI::redisplay_track_list () _group_tabs->set_dirty (); } -#ifdef GTKOSX void -Mixer_UI::queue_draw_all_strips () +Mixer_UI::strip_width_changed () { + _group_tabs->set_dirty (); + +#ifdef GTKOSX TreeModel::Children rows = track_model->children(); TreeModel::Children::iterator i; long order; @@ -795,8 +795,9 @@ Mixer_UI::queue_draw_all_strips () 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 673a619594..1ebe0e031b 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -154,9 +154,7 @@ 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 strip_width_changed (); void track_list_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&); void track_list_delete (const Gtk::TreeModel::Path&);