diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc index fb92900346..337570cb2b 100644 --- a/gtk2_ardour/ardour_ui_options.cc +++ b/gtk2_ardour/ardour_ui_options.cc @@ -30,6 +30,7 @@ #include "ardour_ui.h" #include "actions.h" #include "gui_thread.h" +#include "public_editor.h" #include "i18n.h" @@ -1113,6 +1114,9 @@ ARDOUR_UI::parameter_changed (const char* parameter_name) ActionManager::map_some_state ("options", "SecondaryClockDeltaEditCursor", &Configuration::get_secondary_clock_delta_edit_cursor); } else if (PARAM_IS ("only-copy-imported-files")) { map_only_copy_imported_files (); + } else if (PARAM_IS ("show-track-meters")) { + ActionManager::map_some_state ("options", "ShowTrackMeters", &Configuration::get_show_track_meters); + editor->toggle_meter_updating(); } diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index a5a2a62222..3f772f5ff0 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -355,6 +355,8 @@ class Editor : public PublicEditor bool update_mouse_speed (); bool decelerate_mouse_speed (); + void toggle_meter_updating(); + protected: void map_transport_state (); void map_position_change (nframes_t); @@ -2025,7 +2027,6 @@ class Editor : public PublicEditor sigc::connection fast_screen_update_connection; gint start_updating (); gint stop_updating (); - void toggle_meter_updating(); void fast_update_strips (); bool meters_running; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index d376567e99..714d7e998a 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -1372,9 +1372,6 @@ Editor::parameter_changed (const char* parameter_name) } else if (PARAM_IS ("subframes-per-frame")) { update_subframes_per_frame (); update_just_smpte (); - } else if (PARAM_IS ("show-track-meters")) { - toggle_meter_updating(); - track_canvas_allocate(track_canvas.get_allocation()); } else if (PARAM_IS ("link-region-and-track-selection")) { ActionManager::map_some_state ("Editor", "link-region-and-track-selection", &Configuration::get_link_region_and_track_selection); } diff --git a/gtk2_ardour/editor_audiotrack.cc b/gtk2_ardour/editor_audiotrack.cc index 4cd328821e..c88ff34ee3 100644 --- a/gtk2_ardour/editor_audiotrack.cc +++ b/gtk2_ardour/editor_audiotrack.cc @@ -110,6 +110,7 @@ Editor::toggle_meter_updating() } else { stop_updating (); } + track_canvas_allocate(track_canvas.get_allocation()); } void diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index 9242a6e49a..8e666bdf7a 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -156,6 +156,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway virtual void maximise_editing_space() = 0; virtual void restore_editing_space() = 0; virtual nframes64_t get_preferred_edit_position (bool ignore_playhead = false) = 0; + virtual void toggle_meter_updating() = 0; sigc::signal ZoomFocusChanged; sigc::signal ZoomChanged;