X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fhairpin.cc;h=9e6d179c8b56dd347a3ebdfebdb097125aedeb2c;hb=f3f55c7c293ac8a01bf37aed215d5db2476145af;hp=cacfb0f51c148968f015fec995ef17d742ba24b3;hpb=952705bbbb000581a13836e6a733df04511e93c5;p=lilypond.git diff --git a/lily/hairpin.cc b/lily/hairpin.cc index cacfb0f51c..9e6d179c8b 100644 --- a/lily/hairpin.cc +++ b/lily/hairpin.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2012 Han-Wen Nienhuys + Copyright (C) 1997--2014 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -127,14 +127,16 @@ Hairpin::print (SCM smob) broken[d] = bounds[d]->break_status_dir () != CENTER; } - broken[RIGHT] = broken[RIGHT] && me->broken_neighbor (RIGHT); - broken[RIGHT] = broken[RIGHT] && me->broken_neighbor (RIGHT)->is_live (); - if (broken[RIGHT]) { Spanner *next = me->broken_neighbor (RIGHT); - Stencil *s = next->get_stencil (); - if (!s || s->is_empty ()) + // Hairpin-parts suicide in after-line-breaking if they need not be drawn + if (next) + { + (void) next->get_property ("after-line-breaking"); + broken[RIGHT] = next->is_live (); + } + else broken[RIGHT] = false; } @@ -234,7 +236,8 @@ Hairpin::print (SCM smob) } else { - if (Note_column::has_interface (b) + if (d == RIGHT // end at the left edge of a rest + && Note_column::has_interface (b) && Note_column::has_rests (b)) x_points[d] = e[-d]; else