diff --git a/libs/surfaces/console1/console1.cc b/libs/surfaces/console1/console1.cc index ba460f2e5c..3250371079 100644 --- a/libs/surfaces/console1/console1.cc +++ b/libs/surfaces/console1/console1.cc @@ -61,11 +61,11 @@ Console1::~Console1 () { all_lights_out (); + tear_down_gui (); + stop_event_loop (); MIDISurface::drop (); - tear_down_gui (); - for (const auto& b : buttons) { delete b.second; } diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc index 6f9c6f4183..697f2c8c10 100644 --- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc +++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc @@ -167,7 +167,6 @@ GenericMidiControlProtocol::~GenericMidiControlProtocol () } drop_all (); - tear_down_gui (); } list > @@ -300,6 +299,7 @@ GenericMidiControlProtocol::do_request (GenericMIDIRequest* req) int GenericMidiControlProtocol::stop () { + tear_down_gui (); BaseUI::quit (); return 0; @@ -328,6 +328,7 @@ GenericMidiControlProtocol::set_active (bool yn) if (yn) { BaseUI::run (); } else { + tear_down_gui (); BaseUI::quit (); } diff --git a/libs/surfaces/launchpad_pro/lppro.cc b/libs/surfaces/launchpad_pro/lppro.cc index d234cac54c..b71ae802f3 100644 --- a/libs/surfaces/launchpad_pro/lppro.cc +++ b/libs/surfaces/launchpad_pro/lppro.cc @@ -189,8 +189,8 @@ LaunchPadPro::~LaunchPadPro () p.second.timeout_connection.disconnect (); } - stop_event_loop (); tear_down_gui (); + stop_event_loop (); MIDISurface::drop (); diff --git a/libs/surfaces/launchpad_x/lpx.cc b/libs/surfaces/launchpad_x/lpx.cc index 600e5e117c..6121d4957a 100644 --- a/libs/surfaces/launchpad_x/lpx.cc +++ b/libs/surfaces/launchpad_x/lpx.cc @@ -193,8 +193,8 @@ LaunchPadX::~LaunchPadX () p.second.timeout_connection.disconnect (); } - stop_event_loop (); tear_down_gui (); + stop_event_loop (); MIDISurface::drop (); diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 9eb60147f4..11e7c5fae9 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -138,7 +138,6 @@ OSC::~OSC() { tick = false; stop (); - tear_down_gui (); _instance = 0; } @@ -315,6 +314,8 @@ OSC::thread_init () int OSC::stop () { + tear_down_gui (); + periodic_connection.disconnect (); session_connections.drop_connections ();