Dont delete&create add_vca_buton every time the vca list is updated.
authorBen Loftis <ben@harrisonconsoles.com>
Tue, 13 Feb 2018 14:13:52 +0000 (08:13 -0600)
committerBen Loftis <ben@harrisonconsoles.com>
Tue, 13 Feb 2018 14:13:52 +0000 (08:13 -0600)
gtk2_ardour/mixer_ui.cc
gtk2_ardour/mixer_ui.h

index 18963fb9e9a63bcb0279cb471a61abdad425626d..3b0436d31b391e8519bc989c6e86d46f7ed75e32 100644 (file)
@@ -135,10 +135,15 @@ Mixer_UI::Mixer_UI ()
        scroller_base.drag_dest_set (target_table);
        scroller_base.signal_drag_data_received().connect (sigc::mem_fun(*this, &Mixer_UI::scroller_drag_data_received));
 
-       /* create a button to add mixer strips */
-       add_button.show ();
+       /* create a button to add VCA strips ... will get packed in redisplay_track_list() */
        Widget* w = manage (new Image (Stock::ADD, ICON_SIZE_BUTTON));
        w->show ();
+       add_vca_button.add (*w);
+       add_vca_button.signal_clicked().connect (sigc::mem_fun (*this, &Mixer_UI::new_track_or_bus));
+
+       /* create a button to add mixer strips */
+       w = manage (new Image (Stock::ADD, ICON_SIZE_BUTTON));
+       w->show ();
        add_button.add (*w);
        add_button.signal_clicked().connect (sigc::mem_fun (*this, &Mixer_UI::new_track_or_bus));
 
@@ -330,6 +335,7 @@ Mixer_UI::Mixer_UI ()
        list_hpane.show();
        group_display.show();
        favorite_plugins_display.show();
+       add_button.show ();
 
        MixerStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::remove_strip, this, _1), gui_context());
        VCAMasterStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::remove_master, this, _1), gui_context());
@@ -1435,17 +1441,10 @@ Mixer_UI::redisplay_track_list ()
 
        container_clear (vca_hpacker);
 
-       /* create a button to add mixer strips */
-       Button* add_vca_button = manage (new Button);
-       Widget* w = manage (new Image (Stock::ADD, ICON_SIZE_BUTTON));
-       w->show ();
-       add_vca_button->add (*w);
-       add_vca_button->signal_clicked().connect (sigc::mem_fun (*this, &Mixer_UI::new_track_or_bus));
-
        vca_hpacker.pack_end (vca_scroller_base, true, true);
-       vca_hpacker.pack_end (*add_vca_button, false, false);
+       vca_hpacker.pack_end (add_vca_button, false, false);
 
-       add_vca_button->show ();
+       add_vca_button.show ();
        vca_scroller_base.show();
        
        for (i = rows.begin(); i != rows.end(); ++i) {
index 3fa4214213ed1bd485d0ae3224e55bc792b0e141..47f278e02e71ae3b866d625f67d733b7a82252de 100644 (file)
@@ -167,8 +167,9 @@ private:
        Gtk::Label            vca_label;
        Gtk::EventBox         vca_scroller_base;
        Gtk::HBox             out_packer;
-       Gtk::Button           add_button; // should really be an ArdourButton
        ArdourWidgets::HPane  list_hpane;
+       Gtk::Button           add_button; // should really be an ArdourButton
+       Gtk::Button           add_vca_button;
 
        MixerGroupTabs* _group_tabs;