From 5c60eea32afacc738eee9d96aeac7f963432e36d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 13 Jun 2012 20:37:07 +0000 Subject: [PATCH] Don't recompute child heights when building the route time axis view menu. git-svn-id: svn://localhost/ardour2/branches/3.0@12709 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/route_time_axis.cc | 16 ++++++++++------ gtk2_ardour/route_time_axis.h | 1 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 2afffca3c0..b8f8ba5b12 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -484,21 +484,21 @@ RouteTimeAxisView::build_display_menu () select the active one, no toggled signal is emitted so nothing happens. */ + _ignore_set_layer_display = true; + layers_items.push_back (RadioMenuElem (layers_group, _("Overlaid"))); RadioMenuItem* i = dynamic_cast (&layers_items.back ()); i->set_active (overlaid != 0 && stacked == 0); i->set_inconsistent (overlaid != 0 && stacked != 0); i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::set_layer_display), Overlaid, true)); - layers_items.push_back ( - RadioMenuElem (layers_group, _("Stacked"), - sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::set_layer_display), Stacked, true)) - ); - + layers_items.push_back (RadioMenuElem (layers_group, _("Stacked"))); i = dynamic_cast (&layers_items.back ()); - i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::set_layer_display), Stacked, true)); i->set_active (overlaid == 0 && stacked != 0); i->set_inconsistent (overlaid != 0 && stacked != 0); + i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::set_layer_display), Stacked, true)); + + _ignore_set_layer_display = false; items.push_back (MenuElem (_("Layers"), *layers_menu)); @@ -2175,6 +2175,10 @@ RouteTimeAxisView::update_rec_display () void RouteTimeAxisView::set_layer_display (LayerDisplay d, bool apply_to_selection) { + if (_ignore_set_layer_display) { + return; + } + if (apply_to_selection) { _editor.get_selection().tracks.foreach_route_time_axis (boost::bind (&RouteTimeAxisView::set_layer_display, _1, d, false)); } else { diff --git a/gtk2_ardour/route_time_axis.h b/gtk2_ardour/route_time_axis.h index de383e33d7..e0bbf2c02a 100644 --- a/gtk2_ardour/route_time_axis.h +++ b/gtk2_ardour/route_time_axis.h @@ -307,6 +307,7 @@ protected: UnderlayMirrorList _underlay_mirrors; bool _ignore_track_mode_change; ///< true to ignore track mode change signals + bool _ignore_set_layer_display; private: