prevent massive, multiple, pointless keybindings saves during startup
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 3 Jan 2007 18:48:27 +0000 (18:48 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 3 Jan 2007 18:48:27 +0000 (18:48 +0000)
git-svn-id: svn://localhost/ardour2/trunk@1263 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour.bindings
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_dependents.cc

index bf5df40e9ec439430f0a9f5cf3a08d4d51a7d5b9..83006ea1458941dac3ab6fd38e85bab4a627eac4 100644 (file)
 ; (gtk_accel_path "<Actions>/Editor/PullupPlus1" "")
 ; (gtk_accel_path "<Actions>/Editor/Smpte24976" "")
 ; (gtk_accel_path "<Actions>/options/FileDataFormat24bit" "")
-; (gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "")
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<Control>o")
 ; (gtk_accel_path "<Actions>/Editor/SnapMode" "")
 ; (gtk_accel_path "<Actions>/Editor/PullupMinus4" "")
 (gtk_accel_path "<Actions>/Common/goto-mixer" "<Alt>m")
index 9692c89218a17a5d4d9d4050adaee4e90d2fbf99..67d1554b408e0f105ee251182355707b9b3251ed 100644 (file)
@@ -165,6 +165,9 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], string rcfile)
        last_speed_displayed = -1.0f;
        keybindings_path = ARDOUR::find_config_file ("ardour.bindings");
 
+       can_save_keybindings = false;
+       Glib::signal_idle().connect (mem_fun (*this, &ARDOUR_UI::first_idle));
+
        last_configure_time.tv_sec = 0;
        last_configure_time.tv_usec = 0;
 
@@ -2423,5 +2426,14 @@ ARDOUR_UI::set_keybindings_path (string path)
 void
 ARDOUR_UI::save_keybindings ()
 {
-       AccelMap::save (keybindings_path);
+       if (can_save_keybindings) {
+               AccelMap::save (keybindings_path);
+       } 
+}
+
+bool
+ARDOUR_UI::first_idle ()
+{
+       can_save_keybindings = true;
+       return false;
 }
index 77418f9ab68d9facd2c1830a788994b06906be57..e9fda8617cb9061a158cf4ad9734825f1f06661e 100644 (file)
@@ -666,6 +666,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI
 
        void toggle_control_protocol (ARDOUR::ControlProtocolInfo*);
        void toggle_control_protocol_feedback (ARDOUR::ControlProtocolInfo*, const char* group_name, std::string action_name);
+
+       bool can_save_keybindings;
+       bool first_idle ();
 };
 
 #endif /* __ardour_gui_h__ */
index 7c4f3563f3d3f77f81f4f2f68a4fc923c421ada3..9c6daa8952f724a439cfcbdb0894432cb0b94956 100644 (file)
@@ -27,6 +27,7 @@
 #include <gtkmm/accelmap.h>
 
 #include <pbd/error.h>
+
 #include "ardour_ui.h"
 #include "public_editor.h"
 #include "mixer_ui.h"