diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc index e2eba9617e..6f3b2ecc24 100644 --- a/gtk2_ardour/option_editor.cc +++ b/gtk2_ardour/option_editor.cc @@ -916,13 +916,15 @@ DirectoryOption::DirectoryOption (string const & i, string const & n, sigc::slot { Gtkmm2ext::add_volume_shortcuts (_file_chooser); _file_chooser.set_action (Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER); - _file_chooser.signal_selection_changed().connect (sigc::mem_fun (*this, &DirectoryOption::selection_changed)); + _changed_connection = _file_chooser.signal_selection_changed().connect (sigc::mem_fun (*this, &DirectoryOption::selection_changed)); } void DirectoryOption::set_state_from_config () { - _file_chooser.set_current_folder (poor_mans_glob(_get ())); + _changed_connection.block (); + _file_chooser.set_filename (poor_mans_glob(_get ())); + _changed_connection.unblock (); } void diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h index 85c16243ae..f9694cdc51 100644 --- a/gtk2_ardour/option_editor.h +++ b/gtk2_ardour/option_editor.h @@ -656,6 +656,7 @@ private: sigc::slot _get; ///< slot to get the configuration variable's value sigc::slot _set; ///< slot to set the configuration variable's value Gtk::FileChooserButton _file_chooser; + sigc::connection _changed_connection; }; /** Class to represent a single page in an OptionEditor's notebook.