diff --git a/gtk2_ardour/new_user_wizard.cc b/gtk2_ardour/new_user_wizard.cc index 3f974e1dd3..5480c0c928 100644 --- a/gtk2_ardour/new_user_wizard.cc +++ b/gtk2_ardour/new_user_wizard.cc @@ -57,6 +57,7 @@ #include "new_user_wizard.h" #include "opts.h" +#include "splash.h" #include "ui_config.h" #include "pbd/i18n.h" #include "utils.h" @@ -70,7 +71,8 @@ using namespace ARDOUR; using namespace ARDOUR_UI_UTILS; NewUserWizard::NewUserWizard () - : config_modified (false) + : _splash_pushed (false) + , config_modified (false) , default_dir_chooser (0) , monitor_via_hardware_button (string_compose (_("Use an external mixer or the hardware mixer of your audio interface.\n" "%1 will play NO role in monitoring"), PROGRAM_NAME)) @@ -116,6 +118,7 @@ NewUserWizard::NewUserWizard () NewUserWizard::~NewUserWizard () { + pop_splash (); } bool @@ -526,3 +529,42 @@ NewUserWizard::move_along_now () { on_apply (); } + +void +NewUserWizard::on_show () +{ + Gtk::Assistant::on_show (); + push_splash (); +} + +void +NewUserWizard::on_unmap () +{ + pop_splash (); + Gtk::Assistant::on_unmap (); +} + +void +NewUserWizard::pop_splash () +{ + if (_splash_pushed) { + Splash* spl = Splash::exists () ? Splash::instance() : NULL; + if (spl) { + spl->pop_front_for (*this); + } + _splash_pushed = false; + } +} + + +void +NewUserWizard::push_splash () +{ + if (Splash::exists()) { + Splash* spl = Splash::instance(); + if (spl->is_visible()) { + spl->pop_back_for (*this); + _splash_pushed = true; + } + } +} diff --git a/gtk2_ardour/new_user_wizard.h b/gtk2_ardour/new_user_wizard.h index 2b7c0b67e3..124dff4462 100644 --- a/gtk2_ardour/new_user_wizard.h +++ b/gtk2_ardour/new_user_wizard.h @@ -50,6 +50,14 @@ public: sigc::signal1& signal_response() { return _signal_response; } +protected: + void on_show (); + void on_unmap (); + void pop_splash (); + void push_splash (); + + bool _splash_pushed; + private: bool config_modified; bool new_user;