DescriptionFix issues 1259 and 1433 (\breakDynamicSpan and a spanner's style=#'none over a line break)
This changes the way DynamicLineSpanners are handled when \breakDynamicSpan
is called or when the DynamicTextSpanner's style=#'none (i.e. no line should
be used and thus the spanner should also not unneccessarily shift the dynamic
text spanner up/down).
So far, this was handled by simply ending the DynamicLineSpanner prematurely,
while leaving its children at their full length. As a consequence, the child
spanners were no longer fully contained in the DynamicLineSpanner, which
caused several problem at line breaks.
This patch changes it as follows:
-) All spanner breaks are handled by a flag set on the spanner itself
-) The breakDynamicSpan events are handled by the dynamic engraver, which will set that flag
-) When a DynamicTextSpanner with style=#'none or a \breakDynamicSpan
is encountered, I also set that flag immediately after spanner creation
-) From then on, no new dynamics are added to the line spanner and no
new support points are added that would otherwise shift the spanner
if there is a very high/low note or articulation. If the spanner creates
a grob (like a hairpin), that grob would still be shifted as a grob
to prevent collisions, though.
-) When the current child spanner is ended, we also end the DynamicLineSpanner
(and store it in a temporary variable so that we can properly end it
in stop_translation_timestep). If a new dynamic is encountered, it will
then create a completely new DynamicLineSpanner, which provides the
independent alignment that we want.
This fixes both issues 1259 and 1433:
http://code.google.com/p/lilypond/issues/detail?id=1259
http://code.google.com/p/lilypond/issues/detail?id=1433
Patch Set 1 #Patch Set 2 : Properly fix \breakDynamicSpan and a spanner's style=#'none over a line break #
Total comments: 7
Patch Set 3 : Use a flag on dynamic spanner rather than line spanner, handle breaks in the dynamic engraver #Patch Set 4 : Add one more test case, add spanner-broken to spanner-interface #
Total comments: 15
Patch Set 5 : Include Neil's concerns, clean up regtests. #
MessagesTotal messages: 21
|