summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-06-13 20:37:07 +0000
committerCarl Hetherington <carl@carlh.net>2012-06-13 20:37:07 +0000
commit5c60eea32afacc738eee9d96aeac7f963432e36d (patch)
treea2c6eec1240c1c57885b02f2536d83d592a919f3
parent1363837a6f873a894956436eecbe48c2a422a897 (diff)
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
-rw-r--r--gtk2_ardour/route_time_axis.cc16
-rw-r--r--gtk2_ardour/route_time_axis.h1
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<RadioMenuItem*> (&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<RadioMenuItem*> (&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: