Do not try to restore Route solo state after clearing all solo state
[ardour.git] / gtk2_ardour / session_dialog.cc
index 9ba479eb54ddcb15f3f78caec6e9f62f796d3000..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);
@@ -348,7 +350,10 @@ SessionDialog::setup_initial_choice_box ()
 
        string image_path;
 
-       if (find_file (ardour_data_search_path(), "small-splash.png", image_path)) {
+       Searchpath rc (ARDOUR::ardour_data_search_path());
+       rc.add_subdirectory_to_paths ("resources");
+
+       if (find_file (rc, PROGRAM_NAME "-small-splash.png", image_path)) {
                Gtk::Image* image;
                if ((image = manage (new Gtk::Image (image_path))) != 0) {
                        hbox->pack_start (*image, false, false);
@@ -475,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 ()
 {