, _placement (-1)
, _visible_prefader_processors (0)
, _rr_selection(rsel)
+ , _redisplay_pending (false)
+
{
set_session (sess);
(*i)->set_enum_width (w);
}
- redisplay_processors ();
+ _redisplay_pending = true;
+
}
Gtk::Menu*
{
HBox::on_size_allocate (a);
- list<ProcessorEntry*> children = processor_display.children ();
- for (list<ProcessorEntry*>::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<ProcessorEntry*> children = processor_display.children ();
+ for (list<ProcessorEntry*>::const_iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->set_pixel_width (a.get_width ());
+ }
}
}
void object_drop (Gtkmm2ext::DnDVBox<ProcessorEntry> *, ProcessorEntry *, Glib::RefPtr<Gdk::DragContext> const &);
Width _width;
+ bool _redisplay_pending;
Gtk::Menu *processor_menu;
gint processor_menu_map_handler (GdkEventAny *ev);