--- /dev/null
+\version "2.13.24"
+
+\header {
+ texidoc = "If the line for a @code{DynamicTextSpanner} is hidden, the
+alignment spanner for dynamics is ended early. This allows consecutive
+dynamics to be unlinked."
+}
+
+\relative g' {
+ g4\p\cresc g g g
+ g,1\f
+
+ \override DynamicTextSpanner #'style = #'none
+ g'4\p\cresc g g g
+ g,1\f
+}
Stream_event *cause = info.event_cause ();
create_line_spanner (cause);
if (Spanner::has_interface (info.grob ()))
- started_.push_back (info.spanner ());
+ {
+ started_.push_back (info.spanner ());
+ /*
+ If we are using text spans instead of hairpins and the line
+ is hidden, end the alignment spanner early: this allows dynamics
+ to be spaced individually instead of being linked together.
+ */
+ if (info.grob ()->internal_has_interface (ly_symbol2scm ("dynamic-text-spanner-interface"))
+ && (info.grob ()->get_property ("style") == ly_symbol2scm ("none")))
+ early_end_ = true;
+ }
else if (info.item ())
scripts_.push_back (info.item ());
else