From fd42bffae71ae2bb521ace2145f238a76d9cf764 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 3 Jan 2007 18:48:27 +0000 Subject: prevent massive, multiple, pointless keybindings saves during startup git-svn-id: svn://localhost/ardour2/trunk@1263 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ardour.bindings | 2 +- gtk2_ardour/ardour_ui.cc | 14 +++++++++++++- gtk2_ardour/ardour_ui.h | 3 +++ gtk2_ardour/ardour_ui_dependents.cc | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) (limited to 'gtk2_ardour') 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 "/Editor/PullupPlus1" "") ; (gtk_accel_path "/Editor/Smpte24976" "") ; (gtk_accel_path "/options/FileDataFormat24bit" "") -; (gtk_accel_path "/Common/ToggleOptionsEditor" "") +(gtk_accel_path "/Common/ToggleOptionsEditor" "o") ; (gtk_accel_path "/Editor/SnapMode" "") ; (gtk_accel_path "/Editor/PullupMinus4" "") (gtk_accel_path "/Common/goto-mixer" "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 #include + #include "ardour_ui.h" #include "public_editor.h" #include "mixer_ui.h" -- cgit v1.2.3