diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index d5923411fe..6d03cbebad 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -484,6 +484,7 @@ void ARDOUR_UI::reattach_all_tearoffs () { if (transport_tearoff) transport_tearoff->put_it_back(); + if (editor) editor->reattach_all_tearoffs (); } void diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 2859954742..694dfbf149 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4069,6 +4069,14 @@ Editor::update_tearoff_visibility() } } +void +Editor::reattach_all_tearoffs () +{ + if (_mouse_mode_tearoff) _mouse_mode_tearoff->put_it_back (); + if (_tools_tearoff) _tools_tearoff->put_it_back (); + if (_zoom_tearoff) _zoom_tearoff->put_it_back (); +} + void Editor::maximise_editing_space () { diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index e07ab4b80a..ff244e730b 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -369,6 +369,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void restore_editing_space(); void update_tearoff_visibility(); + void reattach_all_tearoffs (); void reset_x_origin (framepos_t); void reset_x_origin_to_follow_playhead (); diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index 4b3c83ffb1..53e0b60523 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -290,6 +290,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible, publi virtual void maximise_editing_space () = 0; virtual void restore_editing_space () = 0; virtual void update_tearoff_visibility () = 0; + virtual void reattach_all_tearoffs () = 0; virtual framepos_t get_preferred_edit_position (bool ignore_playhead = false, bool from_context_menu = false) = 0; virtual void toggle_meter_updating() = 0; virtual void split_regions_at (framepos_t, RegionSelection&) = 0;