- /*
- It seems that short extenders are even lengthened to go past the note head, but
- haven't found a pattern in it yet. --hwn 1/1/04
+ Real left_point = 0.0;
+ if (left_edge->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
+ left_point = left_edge->extent (common, X_AXIS)[RIGHT];
+ else if (heads.size ())
+ left_point = heads[0]->extent (common, X_AXIS)[LEFT];
+ else
+ left_point = left_edge->extent (common, X_AXIS)[RIGHT];
+
+ if (isinf (left_point))
+ return SCM_EOL;
+
+ /* It seems that short extenders are even lengthened to go past the
+ note head, but haven't found a pattern in it yet. --hwn 1/1/04 */
+ SCM minlen = me->get_property ("minimum-length");
+ 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));