diff -p -r ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour.menus.in ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour.menus.in
*** ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour.menus.in	2009-12-25 10:59:36.502597735 -0800
--- ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour.menus.in	2009-12-25 11:10:45.090097534 -0800
***************
*** 304,309 ****
--- 304,310 ----
  
  		<menu action='View' name='View'>
  			<menuitem action='ToggleMaximalEditor' />
+ 			<menuitem action='KeepTearoffs' />
  			<separator />
  			<menu action='ZoomMenu'>
  				<menuitem action='temporal-zoom-in' />
Only in ardour-2.8.4-keep-toolbars/gtk2_ardour: ardour.menus.in~
diff -p -r ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui2.cc ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui2.cc
*** ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui2.cc	2009-11-06 14:43:41.000000000 -0800
--- ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui2.cc	2009-12-25 11:09:08.754596730 -0800
*************** ARDOUR_UI::maximise_editing_space ()
*** 889,894 ****
--- 889,897 ----
  
  	transport_tearoff->set_visible (false);
  	editor->maximise_editing_space ();
+ 	if (Config->get_keep_tearoffs()) {
+ 		transport_tearoff->set_visible (true);
+ 	}
  }
  
  void
diff -p -r ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui_ed.cc ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui_ed.cc
*** ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui_ed.cc	2009-11-08 10:01:18.000000000 -0800
--- ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui_ed.cc	2009-12-25 11:09:08.754596730 -0800
*************** ARDOUR_UI::install_actions ()
*** 204,209 ****
--- 204,211 ----
          /* windows visibility actions */
  
  	ActionManager::register_toggle_action (common_actions, X_("ToggleMaximalEditor"), _("Maximise Editor Space"), mem_fun (*this, &ARDOUR_UI::toggle_editing_space));
+ 	act = ActionManager::register_toggle_action (common_actions, X_("KeepTearoffs"), _("Toolbars when Maximized"), 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"),  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));
diff -p -r ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui.h ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui.h
*** ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui.h	2009-11-11 05:33:01.000000000 -0800
--- ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui.h	2009-12-25 11:09:08.754596730 -0800
*************** class ARDOUR_UI : public Gtkmm2ext::UI
*** 172,177 ****
--- 172,178 ----
  	void toggle_connection_editor ();
  	void toggle_route_params_window ();
  	void toggle_editing_space();
+ 	void toggle_keep_tearoffs();
  
  	Gtk::Tooltips& tooltips() { return _tooltips; }
  
*************** class ARDOUR_UI : public Gtkmm2ext::UI
*** 738,743 ****
--- 739,745 ----
  
  	void mtc_port_changed ();
  	void map_solo_model ();
+ 	void map_keep_tearoffs ();
  	void map_monitor_model ();
  	void map_denormal_model ();
  	void map_denormal_protection ();
diff -p -r ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui_options.cc ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui_options.cc
*** ardour-2.8.4-view_window-reorder/gtk2_ardour/ardour_ui_options.cc	2009-10-29 12:28:13.000000000 -0700
--- ardour-2.8.4-keep-toolbars/gtk2_ardour/ardour_ui_options.cc	2009-12-25 11:09:08.754596730 -0800
*************** ARDOUR_UI::toggle_new_plugins_active ()
*** 538,543 ****
--- 538,551 ----
  }
  
  void
+ ARDOUR_UI::toggle_keep_tearoffs()
+ {
+ 	ActionManager::toggle_config_state ("Common", "KeepTearoffs", &Configuration::set_keep_tearoffs, &Configuration::get_keep_tearoffs);
+ 
+ 	ARDOUR_UI::toggle_editing_space ();
+ }
+ 
+ void
  ARDOUR_UI::toggle_StopPluginsWithTransport()
  {
  	ActionManager::toggle_config_state ("options", "StopPluginsWithTransport", &Configuration::set_plugins_stop_with_transport, &Configuration::get_plugins_stop_with_transport);
*************** ARDOUR_UI::map_solo_model ()
*** 725,730 ****
--- 733,751 ----
  }
  
  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::map_monitor_model ()
  {
  	const char* on = 0;
*************** ARDOUR_UI::parameter_changed (const char
*** 1163,1168 ****
--- 1184,1191 ----
  	} else if (PARAM_IS ("seamless-loop")) {
  		ActionManager::map_some_state ("options", "toggle-seamless-loop", &Configuration::get_seamless_loop);
  
+ 	} else if (PARAM_IS ("keep-tearoffs")) {
+ 		ActionManager::map_some_state ("Common", "KeepTearoffs", &Configuration::get_keep_tearoffs);
  	} else if (PARAM_IS ("mmc-control")) {
  		ActionManager::map_some_state ("options", "UseMMC", &Configuration::get_mmc_control);
  
diff -p -r ardour-2.8.4-view_window-reorder/gtk2_ardour/editor.cc ardour-2.8.4-keep-toolbars/gtk2_ardour/editor.cc
*** ardour-2.8.4-view_window-reorder/gtk2_ardour/editor.cc	2009-11-13 06:06:21.000000000 -0800
--- ardour-2.8.4-keep-toolbars/gtk2_ardour/editor.cc	2009-12-25 11:09:08.754596730 -0800
*************** Editor::maximise_editing_space ()
*** 4260,4265 ****
--- 4260,4270 ----
  	} 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 ardour-2.8.4-view_window-reorder/libs/ardour/ardour/configuration_vars.h ardour-2.8.4-keep-toolbars/libs/ardour/ardour/configuration_vars.h
*** ardour-2.8.4-view_window-reorder/libs/ardour/ardour/configuration_vars.h	2009-06-14 06:12:03.000000000 -0700
--- ardour-2.8.4-keep-toolbars/libs/ardour/ardour/configuration_vars.h	2009-12-25 11:09:08.754596730 -0800
*************** CONFIG_VARIABLE (uint32_t, periodic_safe
*** 160,165 ****
--- 160,166 ----
  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", false)
+ 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")
