diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 0e1647c3d8..4a8f86c692 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1491,7 +1491,14 @@ ARDOUR_UI::open_session () open_session_selector->set_current_folder(Config->get_default_session_parent_dir()); } - open_session_selector->add_shortcut_folder (Config->get_default_session_parent_dir()); + string default_session_folder = Config->get_default_session_parent_dir(); + try { + /* add_shortcut_folder throws an exception if the folder being added already has a shortcut */ + open_session_selector->add_shortcut_folder (default_session_folder); + } + catch (Glib::Error & e) { + std::cerr << "open_session_selector->add_shortcut_folder (" << default_session_folder << ") threw Glib::Error " << e.what() << std::endl; + } FileFilter session_filter; session_filter.add_pattern ("*.ardour"); diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc index 0ec79667ab..e24e7d6989 100644 --- a/gtk2_ardour/startup.cc +++ b/gtk2_ardour/startup.cc @@ -805,7 +805,15 @@ ArdourStartup::setup_new_session_page () string::size_type last_dir_sep = session_parent_dir.rfind(G_DIR_SEPARATOR); session_parent_dir = session_parent_dir.substr(0, last_dir_sep); new_folder_chooser.set_current_folder (session_parent_dir); - new_folder_chooser.add_shortcut_folder (poor_mans_glob (Config->get_default_session_parent_dir())); + string default_session_folder = poor_mans_glob (Config->get_default_session_parent_dir()); + + try { + /* add_shortcut_folder throws an exception if the folder being added already has a shortcut */ + new_folder_chooser.add_shortcut_folder (default_session_folder); + } + catch (Glib::Error & e) { + std::cerr << "new_folder_chooser.add_shortcut_folder (" << default_session_folder << ") threw Glib::Error " << e.what() << std::endl; + } } else { new_folder_chooser.set_current_folder (poor_mans_glob (Config->get_default_session_parent_dir())); }