summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-06-19 16:53:41 +0000
committerDavid Robillard <d@drobilla.net>2011-06-19 16:53:41 +0000
commit01b04e0d5868ecebf16b9b2051227a8b2fd6e2e1 (patch)
treecae46fb00bbecd8daf5c1ef3ddbd6dcbcfa96169 /src
parent7da76f409f4f75e9f68634b6f95dba643375b756 (diff)
downloadpatchage-01b04e0d5868ecebf16b9b2051227a8b2fd6e2e1.tar.gz
patchage-01b04e0d5868ecebf16b9b2051227a8b2fd6e2e1.tar.bz2
patchage-01b04e0d5868ecebf16b9b2051227a8b2fd6e2e1.zip
Remove module from canvas when Jack clients exit.
git-svn-id: http://svn.drobilla.net/lad/trunk/patchage@3404 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r--src/PatchageCanvas.hpp3
-rw-r--r--src/PatchageEvent.cpp5
2 files changed, 3 insertions, 5 deletions
diff --git a/src/PatchageCanvas.hpp b/src/PatchageCanvas.hpp
index 6412511..1f5a58d 100644
--- a/src/PatchageCanvas.hpp
+++ b/src/PatchageCanvas.hpp
@@ -63,7 +63,6 @@ public:
void remove_ports(bool (*pred)(const PatchagePort*));
void add_module(const std::string& name, PatchageModule* module);
- bool remove_item(FlowCanvas::Item* i);
void remove_port(const PortID& id);
@@ -72,6 +71,8 @@ public:
private:
Patchage* _app;
+ bool remove_item(FlowCanvas::Item* i);
+
typedef std::map<const PortID, PatchagePort*> PortIndex;
PortIndex _port_index;
diff --git a/src/PatchageEvent.cpp b/src/PatchageEvent.cpp
index cf53c03..b101e73 100644
--- a/src/PatchageEvent.cpp
+++ b/src/PatchageEvent.cpp
@@ -50,10 +50,7 @@ PatchageEvent::execute(Patchage* patchage)
PatchageModule* module = dynamic_cast<PatchageModule*>(
patchage->canvas()->find_module(_str, InputOutput));
- if (module) {
- patchage->canvas()->remove_item(module);
- }
-
+ delete module;
free(_str);
_str = NULL;