X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=blobdiff_plain;f=lily%2Falign-element.cc;h=a92f7502b3946908aa7743a01d6a84094607001a;hb=9ec92b639f83d10d497d5cd73194830ae78ecb35;hp=56011a3fe1b94198cf30a1ef56b7a124d9eaaa51;hpb=0d17e9c759bd61c9b20a7c4d9941a412c2a53f5f;p=lilypond.git diff --git a/lily/align-element.cc b/lily/align-element.cc index 56011a3fe1..a92f7502b3 100644 --- a/lily/align-element.cc +++ b/lily/align-element.cc @@ -94,18 +94,28 @@ Align_element::do_side_processing () Interval y = elem_l_arr_[i]->extent(axis ()); if (!y.empty_b()) { - dims.push (y); + Score_element *e =dynamic_cast(elem_l_arr_[i]); - SCM extra_dims = e->get_elt_property (extra_space_scm_sym); + // todo: fucks up if item both in Halign & Valign. + SCM min_dims = e->remove_elt_property (minimum_space_scm_sym); + if (min_dims != SCM_BOOL_F) + { + min_dims = SCM_CDR (min_dims); + y.unite (Interval (gh_scm2double (SCM_CAR (min_dims)), + gh_scm2double (SCM_CDR (min_dims)))); + } + + SCM extra_dims = e->remove_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)); + y[LEFT] += gh_scm2double (SCM_CAR (extra_dims)); + y[RIGHT] += gh_scm2double (SCM_CDR (extra_dims)); } elems.push (e); + dims.push (y); } }