invalidate meter's ColorsChanged connection:
authorRobin Gareus <robin@gareus.org>
Sat, 27 Sep 2014 17:17:13 +0000 (19:17 +0200)
committerRobin Gareus <robin@gareus.org>
Sat, 27 Sep 2014 17:17:13 +0000 (19:17 +0200)
fixes crash: open session, close, open another session, change theme.
old [destoyed] meters from first session were notified about color change.

gtk2_ardour/level_meter.cc
gtk2_ardour/level_meter.h

index d47b10a5989f2b2f662bd31be5e264915460d35d..3672edbc6dee16a8c6f7d1445fd1f58ce8b449a8 100644 (file)
@@ -72,6 +72,7 @@ LevelMeterBase::~LevelMeterBase ()
        for (vector<MeterInfo>::iterator i = meters.begin(); i != meters.end(); i++) {
                delete (*i).meter;
        }
+       meters.clear();
 }
 
 void
index a355d7d28540fedc065e19afc74bc97b2e25173d..b6aec1dd78ea9204a3d7aa6aff0ce6563caf7e84 100644 (file)
@@ -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,