]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/align-element.cc
release: 1.1.46
[lilypond.git] / lily / align-element.cc
index dc41b5de7f294dd754eaa9beb12e50f2d25e96fb..56011a3fe1b94198cf30a1ef56b7a124d9eaaa51 100644 (file)
@@ -86,7 +86,6 @@ Align_element::do_pre_processing ()
 void
 Align_element::do_side_processing ()
 {
-  sort_elements ();
   Array<Interval> dims;
 
   Link_array<Score_element> elems;
@@ -97,6 +96,15 @@ Align_element::do_side_processing ()
        {
          dims.push (y);
          Score_element *e =dynamic_cast<Score_element*>(elem_l_arr_[i]);
+
+         SCM extra_dims = e->get_elt_property (extra_space_scm_sym);
+         if (extra_dims != SCM_BOOL_F)
+           {
+             extra_dims = SCM_CDR (extra_dims);
+             dims.top ()[LEFT] -= gh_scm2double (SCM_CAR (extra_dims));
+             dims.top ()[RIGHT] += gh_scm2double (SCM_CDR (extra_dims));
+           }
+
          elems.push (e);
        }
     }
@@ -134,7 +142,7 @@ Align_element::do_side_processing ()
   if (center_f)
     translate_axis ( - center_f, axis ());
 
-  dim_cache_[axis ()].invalidate ();
+  dim_cache_[axis ()]->invalidate ();
 }
 
 Align_element::Align_element()