X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flyric-extender.cc;h=64d2b9715d3184635f74de2e00b2f2cc1cee5351;hb=9d8942c954e7d44d121c89719aceb91cf83d51ed;hp=867a6d83d30f903a8853f66c1d0d047bb1a39791;hpb=715153c6137c0a16a1e08ffe03e6937f03c1bf3f;p=lilypond.git diff --git a/lily/lyric-extender.cc b/lily/lyric-extender.cc index 867a6d83d3..64d2b9715d 100644 --- a/lily/lyric-extender.cc +++ b/lily/lyric-extender.cc @@ -2,16 +2,16 @@ lyric-extender.cc -- implement Lyric_extender source file of the GNU LilyPond music typesetter - (c) 1998--2006 Jan Nieuwenhuizen + (c) 1998--2007 Jan Nieuwenhuizen Han-Wen Nienhuys */ #include "lyric-extender.hh" - +#include "system.hh" +#include "item.hh" #include "warn.hh" #include "lookup.hh" -#include "paper-column.hh" #include "output-def.hh" #include "note-head.hh" #include "pointer-group-interface.hh" @@ -30,6 +30,8 @@ Lyric_extender::print (SCM smob) common = common->common_refpoint (right_text, X_AXIS); common = common->common_refpoint (me->get_bound (RIGHT), X_AXIS); + common = common->common_refpoint (me->get_system (), X_AXIS); + Real sl = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness")); extract_grob_set (me, "heads", heads); @@ -56,6 +58,8 @@ Lyric_extender::print (SCM smob) Real right_point = left_point + (robust_scm2double (minlen, 0)); + right_point = min (right_point, me->get_system ()->get_bound (RIGHT)->relative_coordinate (common, X_AXIS)); + if (heads.size ()) right_point = max (right_point, heads.back ()->extent (common, X_AXIS)[RIGHT]); @@ -84,10 +88,12 @@ Lyric_extender::print (SCM smob) return mol.smobbed_copy (); } -ADD_INTERFACE (Lyric_extender, "lyric-extender-interface", - "The extender is a simple line at the baseline of the lyric " - "that helps show the length of a melissima (tied/slurred note).", +ADD_INTERFACE (Lyric_extender, + "The extender is a simple line at the baseline of the lyric" + " that helps show the length of a melisma (a tied or slurred" + " note).", + /* properties */ "heads " "left-padding " "next "