From 95c674e3be5288a3263aa621e2b1306f49dc6826 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 13 May 2021 10:26:20 -0600 Subject: [PATCH] rationalize where a TimeAxisView::_size_menu is detached from its parent menu This happens before the parent menu is deleted and rebuilt --- gtk2_ardour/route_time_axis.cc | 7 ++++--- gtk2_ardour/time_axis_view.cc | 4 ++++ gtk2_ardour/vca_time_axis.cc | 4 +--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index f40f705f0a..c550e5f99a 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -632,6 +632,10 @@ RouteTimeAxisView::build_display_menu () /* prepare it */ + if (automation_action_menu) { + detach_menu (*automation_action_menu); + } + TimeAxisView::build_display_menu (); /* now fill it with our stuff */ @@ -649,9 +653,6 @@ RouteTimeAxisView::build_display_menu () items.push_back (SeparatorElem()); - if (_size_menu) { - detach_menu (*_size_menu); - } build_size_menu (); items.push_back (MenuElem (_("Height"), *_size_menu)); items.push_back (SeparatorElem()); diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 76d502ebcc..8d8c6781ff 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -807,6 +807,10 @@ TimeAxisView::build_display_menu () { using namespace Menu_Helpers; + if (_size_menu) { + Gtkmm2ext::detach_menu (*_size_menu); + } + delete display_menu; display_menu = new Menu; diff --git a/gtk2_ardour/vca_time_axis.cc b/gtk2_ardour/vca_time_axis.cc index 5ff9513894..240939e553 100644 --- a/gtk2_ardour/vca_time_axis.cc +++ b/gtk2_ardour/vca_time_axis.cc @@ -451,9 +451,7 @@ VCATimeAxisView::build_display_menu () MenuList& items = display_menu->items(); items.push_back (MenuElem (_("Color..."), sigc::mem_fun (*this, &VCATimeAxisView::choose_color))); - if (_size_menu) { - detach_menu (*_size_menu); - } + build_size_menu (); items.push_back (MenuElem (_("Height"), *_size_menu)); items.push_back (SeparatorElem());