fix meter(s) when mixer-strip is switched to AuxSend
[ardour.git] / gtk2_ardour / time_axis_view.cc
index bea828a6ad49302943553723b3c49c247668bca0..6efea93fc86b357196a152633dd31479dc1768bd 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "pbd/error.h"
 #include "pbd/convert.h"
+#include "pbd/stacktrace.h"
 
 #include <gtkmm2ext/doi.h>
 #include <gtkmm2ext/utils.h>
@@ -76,6 +77,7 @@ TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisVie
        , display_menu (0)
        , parent (rent)
        , selection_group (0)
+       , _ghost_group (0)
        , _hidden (false)
        , in_destructor (false)
        , _size_menu (0)
@@ -89,7 +91,6 @@ TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisVie
        , _resize_drag_start (-1)
        , _preresize_cursor (0)
        , _have_preresize_cursor (false)
-       , _ghost_group (0)
        , _ebox_release_can_act (true)
 {
        if (extra_height == 0) {
@@ -97,13 +98,16 @@ TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisVie
        }
 
        _canvas_display = new Group (ed.get_trackview_group (), ArdourCanvas::Duple (0.0, 0.0));
+       CANVAS_DEBUG_NAME (_canvas_display, "main for TAV");
        _canvas_display->hide(); // reveal as needed
 
        selection_group = new Group (_canvas_display);
+       CANVAS_DEBUG_NAME (selection_group, "selection for TAV");
        selection_group->set_data (X_("timeselection"), (void *) 1);
        selection_group->hide();
 
        _ghost_group = new Group (_canvas_display);
+       CANVAS_DEBUG_NAME (_ghost_group, "ghost for TAV");
        _ghost_group->lower_to_bottom();
        _ghost_group->show();
 
@@ -132,12 +136,18 @@ TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisVie
        controls_table.set_no_show_all ();
 
        HSeparator* separator = manage (new HSeparator());
+       separator->set_name("TrackSeparator");
+       separator->set_size_request(-1, 1);
+       separator->show();
 
        controls_vbox.pack_start (controls_table, false, false);
        controls_vbox.show ();
 
+       controls_hbox.pack_start (controls_vbox, true, true);
+       controls_hbox.show ();
+
        //controls_ebox.set_name ("TimeAxisViewControlsBaseUnselected");
-       controls_ebox.add (controls_vbox);
+       controls_ebox.add (controls_hbox);
        controls_ebox.add_events (Gdk::BUTTON_PRESS_MASK|
                                  Gdk::BUTTON_RELEASE_MASK|
                                  Gdk::POINTER_MOTION_MASK|
@@ -154,10 +164,7 @@ TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisVie
        controls_ebox.signal_leave_notify_event().connect (sigc::mem_fun (*this, &TimeAxisView::controls_ebox_leave));
        controls_ebox.show ();
 
-       controls_hbox.pack_start (controls_ebox, true, true);
-       controls_hbox.show ();
-
-       time_axis_vbox.pack_start (controls_hbox, true, true);
+       time_axis_vbox.pack_start (controls_ebox, true, true, 0);
        time_axis_vbox.pack_end (*separator, false, false);
        time_axis_vbox.show();
 
@@ -175,7 +182,7 @@ TimeAxisView::~TimeAxisView()
        }
 
        for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
- delete (*i)->rect;
              delete (*i)->rect;
                delete (*i)->start_trim;
                delete (*i)->end_trim;
 
@@ -397,6 +404,7 @@ TimeAxisView::controls_ebox_motion (GdkEventMotion* ev)
                maybe_set_cursor (ev->y);
        }
 
+       gdk_event_request_motions(ev);
        return true;
 }