This has to be handled in two places, in ARDOUR_UI::do_audio_midi_setup and in
the dialogs response handler and in as the window can also be triggered via the
window action manager.
audio_midi_setup->set_desired_sample_rate (desired_sample_rate);
audio_midi_setup->set_position (WIN_POS_CENTER);
- switch (audio_midi_setup->run()) {
- case Gtk::RESPONSE_OK:
- return 0;
- case Gtk::RESPONSE_APPLY:
- return 0;
- default:
- return -1;
+ int response;
+
+ while (true) {
+ response = audio_midi_setup->run();
+ switch (response) {
+ case Gtk::RESPONSE_OK:
+ if (!AudioEngine::instance()->running()) {
+ continue;
+ } else {
+ return 0;
+ }
+ return 0;
+ default:
+ return -1;
+ }
}
}
switch (response_id) {
case RESPONSE_OK:
+ if (push_state_to_backend (true) != 0) {
+ return;
+ } else {
+ hide ();
+ }
#ifdef PLATFORM_WINDOWS
- // For some reason we don't understand, 'hide()'
- // needs to get called first in Windows
- hide ();
// But if there's no session open, this can produce
// a long gap when nothing appears to be happening.
}
}
}
- push_state_to_backend (true);
- break;
-#else
- push_state_to_backend (true);
- hide ();
- break;
#endif
+ break;
case RESPONSE_DELETE_EVENT:
{
GdkEventButton ev;