summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-01-03 18:48:27 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-01-03 18:48:27 +0000
commitfd42bffae71ae2bb521ace2145f238a76d9cf764 (patch)
tree4cea59c328ea2bb8449d73fa455abd257281857a
parent758e2e6a934c6df4f576395599e6d9a23c1a6882 (diff)
prevent massive, multiple, pointless keybindings saves during startup
git-svn-id: svn://localhost/ardour2/trunk@1263 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/ardour.bindings2
-rw-r--r--gtk2_ardour/ardour_ui.cc14
-rw-r--r--gtk2_ardour/ardour_ui.h3
-rw-r--r--gtk2_ardour/ardour_ui_dependents.cc1
4 files changed, 18 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour.bindings b/gtk2_ardour/ardour.bindings
index bf5df40e9e..83006ea145 100644
--- a/gtk2_ardour/ardour.bindings
+++ b/gtk2_ardour/ardour.bindings
@@ -218,7 +218,7 @@
; (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")
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 9692c89218..67d1554b40 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -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;
}
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 77418f9ab6..e9fda8617c 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -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__ */
diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc
index 7c4f3563f3..9c6daa8952 100644
--- a/gtk2_ardour/ardour_ui_dependents.cc
+++ b/gtk2_ardour/ardour_ui_dependents.cc
@@ -27,6 +27,7 @@
#include <gtkmm/accelmap.h>
#include <pbd/error.h>
+
#include "ardour_ui.h"
#include "public_editor.h"
#include "mixer_ui.h"