JMarc, I have fixed things in my tree here so that this should be pretty easy. All insets with dialogs are now derived from withDialog, so:
#include "frontends/DialogBase.h" #include <sigc++/signal_system.h> class withDialog { public: virtual ~withDialog() { if (connected()) hideDialog_(); } bool connected() const { return hideConnection_.connected(); } void disconnect() { hideConnection_.disconnect(); } void connect(DialogBase & dialog) { hideConnection_ = hideDialog_.connect(SigC::slot(&dialog, &DialogBase::hide)); } private: /// SigC::Signal0<void> hideDialog_; /// SigC::Connection hideConnection_; }; That is, the all important SigC::Connection has been moved from the controllers to the inset, where it really belongs. Remind me again about the LFUNs and how they are to be used. Angus