diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CanvasModule.cpp | 6 | ||||
-rw-r--r-- | src/CanvasModule.hpp | 11 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/CanvasModule.cpp b/src/CanvasModule.cpp index 4b74f9e..86cce34 100644 --- a/src/CanvasModule.cpp +++ b/src/CanvasModule.cpp @@ -51,7 +51,6 @@ CanvasModule::CanvasModule(Patchage* app, double y) : Module(*app->canvas(), name, x, y) , _app(app) - , _menu(nullptr) , _name(name) , _type(type) , _id(std::move(id)) @@ -67,8 +66,6 @@ CanvasModule::CanvasModule(Patchage* app, CanvasModule::~CanvasModule() { _app->canvas()->remove_module(this); - delete _menu; - _menu = nullptr; } void @@ -100,7 +97,8 @@ CanvasModule::update_menu() bool CanvasModule::show_menu(GdkEventButton* ev) { - _menu = new Gtk::Menu(); + _menu = std::unique_ptr<Gtk::Menu>{new Gtk::Menu()}; + Gtk::Menu::MenuList& items = _menu->items(); if (_type == SignalDirection::duplex) { diff --git a/src/CanvasModule.hpp b/src/CanvasModule.hpp index b8c9523..5259c5b 100644 --- a/src/CanvasModule.hpp +++ b/src/CanvasModule.hpp @@ -27,6 +27,7 @@ PATCHAGE_RESTORE_WARNINGS #include <gdk/gdk.h> +#include <memory> #include <string> namespace Gtk { @@ -77,11 +78,11 @@ public: protected: bool on_event(GdkEvent* ev) override; - Patchage* _app; - Gtk::Menu* _menu; - std::string _name; - SignalDirection _type; - ClientID _id; + Patchage* _app; + std::unique_ptr<Gtk::Menu> _menu; + std::string _name; + SignalDirection _type; + ClientID _id; }; } // namespace patchage |