+ for (list<WindowProxyBase*>::iterator i = _window_proxies.begin(); i != _window_proxies.end(); ++i) {
+ if ((*i)->rc_configured()) {
+ window_node->add_child_nocopy (*((*i)->get_state ()));
+ }
+ }
+
+ /* tearoffs */
+
+ XMLNode* tearoff_node = new XMLNode (X_("Tearoffs"));
+
+ if (transport_tearoff) {
+ XMLNode* t = new XMLNode (X_("transport"));
+ transport_tearoff->add_state (*t);
+ tearoff_node->add_child_nocopy (*t);
+ }
+
+ if (mixer && mixer->monitor_section()) {
+ XMLNode* t = new XMLNode (X_("monitor-section"));
+ mixer->monitor_section()->tearoff().add_state (*t);
+ tearoff_node->add_child_nocopy (*t);
+ }
+
+ if (editor && editor->mouse_mode_tearoff()) {
+ XMLNode* t = new XMLNode (X_("mouse-mode"));
+ editor->mouse_mode_tearoff ()->add_state (*t);
+ tearoff_node->add_child_nocopy (*t);
+ }
+
+ window_node->add_child_nocopy (*tearoff_node);
+
+ Config->add_extra_xml (*window_node);
+
+ if (_startup && _startup->engine_control() && _startup->engine_control()->was_used()) {
+ Config->add_extra_xml (_startup->engine_control()->get_state());