diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 7bdac0c86d..b9e8102214 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -691,6 +691,8 @@ ProcessorBox::ProcessorBox (ARDOUR::Session* sess, boost::functionset_enum_width (w); } - redisplay_processors (); + _redisplay_pending = true; + } Gtk::Menu* @@ -2501,9 +2504,14 @@ ProcessorBox::on_size_allocate (Allocation& a) { HBox::on_size_allocate (a); - list children = processor_display.children (); - for (list::const_iterator i = children.begin(); i != children.end(); ++i) { - (*i)->set_pixel_width (a.get_width ()); + if (_redisplay_pending) { + _redisplay_pending = false; + redisplay_processors (); + } else { + list children = processor_display.children (); + for (list::const_iterator i = children.begin(); i != children.end(); ++i) { + (*i)->set_pixel_width (a.get_width ()); + } } } diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index 268241a4e6..f500a06838 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -300,6 +300,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD void object_drop (Gtkmm2ext::DnDVBox *, ProcessorEntry *, Glib::RefPtr const &); Width _width; + bool _redisplay_pending; Gtk::Menu *processor_menu; gint processor_menu_map_handler (GdkEventAny *ev);