X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstem.cc;h=09786b750b5d205d4b7f834b6c6fa69fe507453b;hb=e9a308e9c6002900fc336733950a0175bcbcc333;hp=dd247b4baa1997e2d74ea8783d13649631d91f38;hpb=1f3b8cf85db24896d7021f8babda94bd48a48ebe;p=lilypond.git diff --git a/lily/stem.cc b/lily/stem.cc index dd247b4baa..09786b750b 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -414,6 +414,8 @@ Stem::calc_positioning_done (SCM smob) if (!head_count (me)) return SCM_BOOL_T; + me->set_property ("positioning-done", SCM_BOOL_T); + extract_grob_set (me, "note-heads", ro_heads); vector heads (ro_heads); vector_sort (heads, position_less); @@ -559,13 +561,11 @@ SCM Stem::height (SCM smob) { Grob *me = unsmob_grob (smob); - + if (!is_normal_stem (me)) + return ly_interval2scm (Interval ()); + Direction dir = get_grob_direction (me); - /* Trigger callback. - - UGH. Should be automatic - */ Grob *beam = get_beam (me); if (beam) { @@ -912,10 +912,14 @@ Stem::calc_stem_info (SCM smob) Real height_of_my_trem = 0.0; Grob *trem = unsmob_grob (me->get_object ("tremolo-flag")); if (trem) - height_of_my_trem = trem->extent (trem, Y_AXIS).length () + { + height_of_my_trem + = Stem_tremolo::vertical_length (trem) /* hack a bit of space around the trem. */ + beam_translation; + } + /* UGH It seems that also for ideal minimum length, we must use the maximum beam count (for this direction):