2006-05-16 Han-Wen Nienhuys <hanwen@lilypond.org>
+ * lily/dynamic-engraver.cc (typeset_all): hang ending on
+ currentCommandColumn.
+
+ * lily/hairpin.cc (print): also add padding for non-neighbor
+ hairpin bounds.
+
+ * scm/define-context-properties.scm
+ (all-user-translation-properties): add hairpinToBarline
+
+ * input/regression/hairpin-to-barline.ly: new file.
+
* lily/context.cc (internal_send_stream_event): thinko fix.
* lily/tie.cc (set_default_control_points): robustness fix.
--- /dev/null
+\header {
+
+ texidoc = "By setting @code{hairpinToBarline}, hairpins will stop at
+the barline preceding the ending note."
+
+}
+
+\version "2.9.5"
+
+\paper {
+ ragged-right = ##t
+}
+
+\relative c'' {
+ \set hairpinToBarline = ##t
+ \override Hairpin #'bound-padding = #1.0
+ c4\< c2. c4\!
+}
{
if (finished_cresc_)
{
- if (!finished_cresc_->get_bound (RIGHT))
+ bool use_bar = to_boolean (get_property ("hairpinToBarline"))
+ && scm_is_string (get_property ("whichBar"))
+ && !script_ev_;
+
+
+ if (!finished_cresc_->get_bound (RIGHT)
+ || use_bar)
{
+ Grob *column_bound = unsmob_grob (use_bar
+ ? get_property ("currentCommandColumn")
+ : get_property ("currentMusicalColumn"));
+
finished_cresc_->set_bound (RIGHT, script_
? script_
- : unsmob_grob (get_property ("currentMusicalColumn")));
+ : column_bound);
if (finished_line_spanner_)
add_bound_item (finished_line_spanner_,
x_points[d] = e.center () - d * padding / 3;
}
else
- x_points[d] = e[d];
+ x_points[d] = e[d] - d * padding;
}
}
}
(gridInterval ,ly:moment?
"Interval for which to generate @ref{GridPoint}s")
+ (hairpinToBarline ,boolean? "If set, end a hairpin at the barline before the ending note.")
+
(harmonicAccidentals ,boolean? "If set, harmonic notes in chords
get accidentals.")
(highStringOne ,boolean? "Whether the 1st string is the string with