summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-09-27 19:17:13 +0200
committerRobin Gareus <robin@gareus.org>2014-09-27 19:17:13 +0200
commit738336fbd5f8c2a1f946577fd8d031c3ddabc985 (patch)
treeec0fb67b64703d903d4387cb06d0113778e4b0a8
parentfb0de10b93dbc25d2c75757b858bf0f9b12c93a1 (diff)
invalidate meter's ColorsChanged connection:
fixes crash: open session, close, open another session, change theme. old [destoyed] meters from first session were notified about color change.
-rw-r--r--gtk2_ardour/level_meter.cc1
-rw-r--r--gtk2_ardour/level_meter.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index d47b10a598..3672edbc6d 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -72,6 +72,7 @@ LevelMeterBase::~LevelMeterBase ()
for (vector<MeterInfo>::iterator i = meters.begin(); i != meters.end(); i++) {
delete (*i).meter;
}
+ meters.clear();
}
void
diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h
index a355d7d285..b6aec1dd78 100644
--- a/gtk2_ardour/level_meter.h
+++ b/gtk2_ardour/level_meter.h
@@ -49,7 +49,7 @@ namespace Gtk {
class Menu;
}
-class LevelMeterBase : public ARDOUR::SessionHandlePtr
+class LevelMeterBase : public ARDOUR::SessionHandlePtr, virtual public sigc::trackable
{
public:
LevelMeterBase (ARDOUR::Session*, PBD::EventLoop::InvalidationRecord* ir,