diff -p -r ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour.menus.in ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour.menus.in
*** ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour.menus.in	2009-12-25 17:28:29.946098615 -0800
--- ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour.menus.in	2009-12-25 17:29:54.394098734 -0800
***************
*** 294,299 ****
--- 294,300 ----
  
  		<menu action='View' name='View'>
  			<menuitem action='ToggleMaximalEditor'/>
+ 			<menuitem action='KeepTearoffs'/>
  			<separator/>
  			<menu action='PrimaryClockMenu'>
  				<menuitem action='primary-clock-bbt'/>
diff -p -r ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui2.cc ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui2.cc
*** ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui2.cc	2009-12-25 13:12:28.000000000 -0800
--- ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui2.cc	2009-12-25 17:35:58.154098362 -0800
*************** ARDOUR_UI::maximise_editing_space ()
*** 893,898 ****
--- 893,901 ----
  
  	transport_tearoff->set_visible (false);
  	editor->maximise_editing_space ();
+ 	if (Config->get_keep_tearoffs()) {
+ 		transport_tearoff->set_visible (true);
+ 	}
  }
  
  void
diff -p -r ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui_ed.cc ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui_ed.cc
*** ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui_ed.cc	2009-12-25 13:12:28.000000000 -0800
--- ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui_ed.cc	2009-12-25 17:40:06.570098693 -0800
*************** ARDOUR_UI::install_actions ()
*** 201,206 ****
--- 201,208 ----
          /* windows visibility actions */
  
  	ActionManager::register_toggle_action (common_actions, X_("ToggleMaximalEditor"), _("Maximise Editor Space"), sigc::mem_fun (*this, &ARDOUR_UI::toggle_editing_space));
+ 	act = ActionManager::register_toggle_action (common_actions, X_("KeepTearoffs"), _("Toolbars when Maximised"), mem_fun (*this, &ARDOUR_UI::toggle_keep_tearoffs));
+ 	ActionManager::session_sensitive_actions.push_back (act);
  
  	ActionManager::register_action (common_actions, X_("goto-editor"), _("Show Editor"),  sigc::mem_fun(*this, &ARDOUR_UI::goto_editor_window));
  	ActionManager::register_action (common_actions, X_("goto-mixer"), _("Show Mixer"),  sigc::mem_fun(*this, &ARDOUR_UI::goto_mixer_window));
diff -p -r ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui.h ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui.h
*** ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui.h	2009-12-25 13:12:28.000000000 -0800
--- ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui.h	2009-12-25 17:44:31.754099123 -0800
*************** class ARDOUR_UI : public Gtkmm2ext::UI, 
*** 172,177 ****
--- 172,179 ----
  	void toggle_big_clock_window ();
  	void toggle_route_params_window ();
  	void toggle_editing_space();
+ 	void toggle_keep_tearoffs();
+ 	void map_keep_tearoffs (); // this was in different place under 2.8.4
  
  	Gtk::Tooltips& tooltips() { return _tooltips; }
  
diff -p -r ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui_options.cc ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui_options.cc
*** ardour3.0-6398-view_window-reorder/gtk2_ardour/ardour_ui_options.cc	2009-12-25 13:12:28.000000000 -0800
--- ardour3.0-6398-keep-toolbars/gtk2_ardour/ardour_ui_options.cc	2009-12-25 17:56:53.322098849 -0800
*************** using namespace ARDOUR;
*** 47,52 ****
--- 47,73 ----
  using namespace PBD;
  
  void
+ ARDOUR_UI::toggle_keep_tearoffs()
+ {
+ 	ActionManager::toggle_config_state ("Common", "KeepTearoffs", &RCConfiguration::set_keep_tearoffs, &RCConfiguration::get_keep_tearoffs);
+ 
+ 	ARDOUR_UI::toggle_editing_space ();
+ }
+ 
+ void
+ ARDOUR_UI::map_keep_tearoffs ()
+ {
+ 	Glib::RefPtr<Action> act = ActionManager::get_action ("Common", X_("KeepTearoffs"));
+ 	Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
+ 
+ 	if (Config->get_keep_tearoffs()){
+ 		if (tact && !tact->get_active()) {
+ 		tact->set_active (true);
+ 		}
+ 	}
+ }
+ 
+ void
  ARDOUR_UI::toggle_external_sync()
  {
  	ActionManager::toggle_config_state_foo ("Transport", "ToggleExternalSync", sigc::mem_fun (_session->config, &SessionConfiguration::set_external_sync), sigc::mem_fun (_session->config, &SessionConfiguration::get_external_sync));
*************** ARDOUR_UI::parameter_changed (std::strin
*** 334,339 ****
--- 355,362 ----
  		}
  #endif
  
+ 	} else if (p == "keep-tearoffs") {
+ 		ActionManager::map_some_state ("Common", "KeepTearoffs", &RCConfiguration::get_keep_tearoffs);
  	} else if (p == "mmc-control") {
  		ActionManager::map_some_state ("options", "UseMMC", &RCConfiguration::get_mmc_control);
  	} else if (p == "midi-feedback") {
diff -p -r ardour3.0-6398-view_window-reorder/gtk2_ardour/editor.cc ardour3.0-6398-keep-toolbars/gtk2_ardour/editor.cc
*** ardour3.0-6398-view_window-reorder/gtk2_ardour/editor.cc	2009-12-25 13:12:28.000000000 -0800
--- ardour3.0-6398-keep-toolbars/gtk2_ardour/editor.cc	2009-12-25 17:58:19.902099533 -0800
*************** Editor::maximise_editing_space ()
*** 3942,3947 ****
--- 3942,3952 ----
  	} else {
  		edit_pane.set_position (post_maximal_pane_position);
  	}
+ 
+ 	if (Config->get_keep_tearoffs()) {
+ 		mouse_mode_tearoff->set_visible (true);
+ 		tools_tearoff->set_visible (true);
+ 	}
  }
  
  void
diff -p -r ardour3.0-6398-view_window-reorder/libs/ardour/ardour/rc_configuration_vars.h ardour3.0-6398-keep-toolbars/libs/ardour/ardour/rc_configuration_vars.h
*** ardour3.0-6398-view_window-reorder/libs/ardour/ardour/rc_configuration_vars.h	2009-12-25 13:12:36.000000000 -0800
--- ardour3.0-6398-keep-toolbars/libs/ardour/ardour/rc_configuration_vars.h	2009-12-25 17:25:34.314099165 -0800
*************** CONFIG_VARIABLE (uint32_t, periodic_safe
*** 137,142 ****
--- 137,143 ----
  CONFIG_VARIABLE (float, automation_interval, "automation-interval", 50)
  CONFIG_VARIABLE (bool, sync_all_route_ordering, "sync-all-route-ordering", true)
  CONFIG_VARIABLE (bool, only_copy_imported_files, "only-copy-imported-files", true)
+ CONFIG_VARIABLE (bool, keep_tearoffs, "keep-tearoffs", false)
  CONFIG_VARIABLE (bool, new_plugins_active, "new-plugins-active", true)
  CONFIG_VARIABLE (std::string, keyboard_layout, "keyboard-layout", "ansi")
  CONFIG_VARIABLE (std::string, default_bindings, "default-bindings", "ardour")
