Do not try to restore Route solo state after clearing all solo state
[ardour.git] / gtk2_ardour / session_dialog.cc
index fe8a1bdd4c4bfe204e48cd0db389b76eb81a0050..6cb28f99b04e51d612a89a6a582715b887763723 100644 (file)
@@ -41,6 +41,7 @@
 #include "pbd/openuri.h"
 
 #include "gtkmm2ext/utils.h"
+#include "gtkmm2ext/keyboard.h"
 
 #include "ardour/audioengine.h"
 #include "ardour/filesystem_paths.h"
@@ -54,7 +55,7 @@
 #include "session_dialog.h"
 #include "opts.h"
 #include "engine_dialog.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
 #include "tooltips.h"
 #include "ui_config.h"
 #include "utils.h"
@@ -87,6 +88,7 @@ SessionDialog::SessionDialog (bool require_new, const std::string& session_name,
        open_button = add_button (Stock::OPEN, RESPONSE_ACCEPT);
 
        back_button->signal_button_press_event().connect (sigc::mem_fun (*this, &SessionDialog::back_button_pressed), false);
+       open_button->signal_button_press_event().connect (sigc::mem_fun (*this, &SessionDialog::open_button_pressed), false);
 
        open_button->set_sensitive (false);
        back_button->set_sensitive (false);
@@ -478,6 +480,16 @@ SessionDialog::back_button_pressed (GdkEventButton*)
        return true;
 }
 
+bool
+SessionDialog::open_button_pressed (GdkEventButton* ev)
+{
+       if (Gtkmm2ext::Keyboard::modifier_state_equals (ev->state, Gtkmm2ext::Keyboard::PrimaryModifier)) {
+               _disable_plugins.set_active();
+       }
+       response (RESPONSE_ACCEPT);
+       return true;
+}
+
 void
 SessionDialog::populate_session_templates ()
 {