diff --git a/gtk2_ardour/SAE-de.bindings.in b/gtk2_ardour/SAE-de.bindings.in index 1c74cc314d..9122317df9 100644 --- a/gtk2_ardour/SAE-de.bindings.in +++ b/gtk2_ardour/SAE-de.bindings.in @@ -104,7 +104,7 @@ (gtk_accel_path "/Editor/normalize-region" "n") (gtk_accel_path "/Main/New" "<%PRIMARY%>n") (gtk_accel_path "/Main/AddTrackBus" "<%PRIMARY%><%TERTIARY%>n") -(gtk_accel_path "/Common/goto-mixer" "<%SECONDARY%>m") +(gtk_accel_path "/Common/toggle-editor-mixer-on-top" "<%SECONDARY%>m") (gtk_accel_path "/Editor/add-location-from-playhead" "KP_Enter") (gtk_accel_path "/Editor/mute-unmute-region" "m") diff --git a/gtk2_ardour/SAE-us.bindings.in b/gtk2_ardour/SAE-us.bindings.in index 523878bd3f..598d9b1f55 100644 --- a/gtk2_ardour/SAE-us.bindings.in +++ b/gtk2_ardour/SAE-us.bindings.in @@ -229,7 +229,8 @@ ; (gtk_accel_path "/Editor/SnapMode" "") (gtk_accel_path "/Common/ToggleOptionsEditor" "<%WINDOW%>o") ; (gtk_accel_path "/Editor/PullupMinus4" "") -(gtk_accel_path "/Common/goto-mixer" "<%WINDOW%>m") +; (gtk_accel_path "/Common/goto-mixer" "<%WINDOW%>m") +(gtk_accel_path "/Common/toggle-editor-mixer-on-top" "<%WINDOW%>m") ; (gtk_accel_path "/RegionList/SortBySourceFileCreationDate" "") ; (gtk_accel_path "/redirectmenu/activate" "") (gtk_accel_path "/Editor/extend-range-to-start-of-region" "leftanglebracket") diff --git a/gtk2_ardour/ardour-sae.menus b/gtk2_ardour/ardour-sae.menus index 582fb7ead4..3b8330e33f 100644 --- a/gtk2_ardour/ardour-sae.menus +++ b/gtk2_ardour/ardour-sae.menus @@ -268,6 +268,7 @@ + diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index c8d0c8afdc..670f896923 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -199,6 +199,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) session_loaded = false; last_speed_displayed = -1.0f; ignore_dual_punch = false; + _mixer_on_top = false; last_configure_time= 0; diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index ed62d5c138..79ab093e9d 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -276,8 +276,10 @@ class ARDOUR_UI : public Gtkmm2ext::UI Gtk::Tooltips _tooltips; - void goto_editor_window (); - void goto_mixer_window (); + void goto_editor_window (); + void goto_mixer_window (); + void toggle_editor_mixer_on_top (); + bool _mixer_on_top; GlobalClickBox *online_control_button; vector online_control_strings; diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index 7d623ac58e..78299941f9 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -99,6 +99,7 @@ ARDOUR_UI::goto_editor_window () editor->show_window (); editor->present(); + _mixer_on_top = false; flush_pending (); } @@ -107,9 +108,22 @@ ARDOUR_UI::goto_mixer_window () { mixer->show_window (); mixer->present(); + _mixer_on_top = true; flush_pending (); } +void +ARDOUR_UI::toggle_editor_mixer_on_top () +{ + if (_mixer_on_top) { + goto_editor_window (); + _mixer_on_top = false; + } else { + goto_mixer_window (); + _mixer_on_top = true; + } +} + gint ARDOUR_UI::exit_on_main_window_close (GdkEventAny *ev) { diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 974d8aadf1..7a355982be 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -203,6 +203,7 @@ ARDOUR_UI::install_actions () ActionManager::register_action (common_actions, X_("goto-editor"), _("Show Editor"), mem_fun(*this, &ARDOUR_UI::goto_editor_window)); ActionManager::register_action (common_actions, X_("goto-mixer"), _("Show Mixer"), mem_fun(*this, &ARDOUR_UI::goto_mixer_window)); + ActionManager::register_action (common_actions, X_("toggle-editor-mixer-on-top"), _("Toggle Editor Mixer on Top"), mem_fun(*this, &ARDOUR_UI::toggle_editor_mixer_on_top)); ActionManager::register_toggle_action (common_actions, X_("ToggleOptionsEditor"), _("Preferences"), mem_fun(*this, &ARDOUR_UI::toggle_options_window)); act = ActionManager::register_toggle_action (common_actions, X_("ToggleInspector"), _("Track/Bus Inspector"), mem_fun(*this, &ARDOUR_UI::toggle_route_params_window)); ActionManager::session_sensitive_actions.push_back (act); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index aad286610c..1bd85650e1 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4415,7 +4415,14 @@ Editor::idle_visual_changer () } if (p & VisualChange::TimeOrigin) { + double current_time_origin = horizontal_adjustment.get_value(); horizontal_adjustment.set_value (pending_visual_change.time_origin / frames_per_unit); + + if (current_time_origin == pending_visual_change.time_origin) { + /* changed signal not emitted */ + update_fixed_rulers (); + redisplay_tempo (true); + } } //cerr << "Editor::idle_visual_changer () called ha v:l:u:ps:fpu = " << horizontal_adjustment.get_value() << ":" << horizontal_adjustment.get_lower() << ":" << horizontal_adjustment.get_upper() << ":" << horizontal_adjustment.get_page_size() << ":" << frames_per_unit << endl;//DEBUG