diff options
author | Robin Gareus <robin@gareus.org> | 2017-03-16 01:50:30 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-03-16 02:36:48 +0100 |
commit | e5d48a8544d95bd1fdf48b4805266bdda47b5acf (patch) | |
tree | dd1690abade52163c1bdfb349ea0062e288c32e5 | |
parent | 4d95a4e205521e1c691fc7e3ea206d1741a642f7 (diff) |
Plugin another menu memory leak.
-rw-r--r-- | gtk2_ardour/control_slave_ui.cc | 13 | ||||
-rw-r--r-- | gtk2_ardour/control_slave_ui.h | 3 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gtk2_ardour/control_slave_ui.cc b/gtk2_ardour/control_slave_ui.cc index 96ff49c372..8842590bb1 100644 --- a/gtk2_ardour/control_slave_ui.cc +++ b/gtk2_ardour/control_slave_ui.cc @@ -44,6 +44,7 @@ using std::string; ControlSlaveUI::ControlSlaveUI (Session* s) : SessionHandlePtr (s) , initial_button (ArdourButton::default_elements) + , context_menu (0) { set_no_show_all (true); @@ -59,6 +60,11 @@ ControlSlaveUI::ControlSlaveUI (Session* s) pack_start (initial_button, true, true); } +ControlSlaveUI::~ControlSlaveUI () +{ + delete context_menu; +} + void ControlSlaveUI::set_stripable (boost::shared_ptr<Stripable> s) { @@ -177,8 +183,9 @@ ControlSlaveUI::vca_button_release (GdkEventButton* ev, uint32_t n) return true; } - Menu* menu = new Menu; - MenuList& items = menu->items(); + delete context_menu; + context_menu = new Menu; + MenuList& items = context_menu->items(); bool slaved = false; for (VCAList::iterator v = vcas.begin(); v != vcas.end(); ++v) { @@ -212,7 +219,7 @@ ControlSlaveUI::vca_button_release (GdkEventButton* ev, uint32_t n) } if (!items.empty()) { - menu->popup (1, ev->time); + context_menu->popup (1, ev->time); } return true; diff --git a/gtk2_ardour/control_slave_ui.h b/gtk2_ardour/control_slave_ui.h index 3443e1a79a..0c8de7a972 100644 --- a/gtk2_ardour/control_slave_ui.h +++ b/gtk2_ardour/control_slave_ui.h @@ -43,6 +43,7 @@ class ControlSlaveUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr { public: ControlSlaveUI (ARDOUR::Session*); + ~ControlSlaveUI (); void set_stripable (boost::shared_ptr<ARDOUR::Stripable>); private: @@ -59,6 +60,8 @@ class ControlSlaveUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr bool vca_button_release (GdkEventButton* ev, uint32_t n); void add_vca_button (boost::shared_ptr<ARDOUR::VCA>); void unassign_all (); + + Gtk::Menu* context_menu; }; #endif /* __gtk2_ardour_control_slave_ui_h__ */ |