summaryrefslogtreecommitdiff
path: root/gtk2_ardour/startup_fsm.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-10-10 21:47:17 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2019-10-10 21:47:17 -0600
commit89cab5802ac19159e12c1da9eb40cf0f592ad2b9 (patch)
treecd91f79815e3540c64388070c54649eb802cc1c7 /gtk2_ardour/startup_fsm.cc
parentaa2ea11a47f32f7d592a9fd0856dd9b8990e34f2 (diff)
goto preferred over reentrancy
Diffstat (limited to 'gtk2_ardour/startup_fsm.cc')
-rw-r--r--gtk2_ardour/startup_fsm.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk2_ardour/startup_fsm.cc b/gtk2_ardour/startup_fsm.cc
index 18c622602b..390f0672bb 100644
--- a/gtk2_ardour/startup_fsm.cc
+++ b/gtk2_ardour/startup_fsm.cc
@@ -128,6 +128,8 @@ StartupFSM::dialog_response_handler (int response, StartupFSM::DialogID dialog_i
{
const bool new_session_required = (ARDOUR_COMMAND_LINE::new_session || (!ARDOUR::Profile->get_mixbus() && new_user));
+ restart:
+
switch (_state) {
case NeedPreRelease:
switch (dialog_id) {
@@ -142,7 +144,12 @@ StartupFSM::dialog_response_handler (int response, StartupFSM::DialogID dialog_i
if (NewUserWizard::required()) {
show_new_user_wizard ();
} else {
- dialog_response_handler (RESPONSE_OK, NewUserDialog);
+ /* act as if we had just finished with the new
+ user wizard. goto preferred over reentrancy.
+ */
+ dialog_id = NewUserDialog;
+ response = RESPONSE_OK;
+ goto restart;
}
break;
}