From 057d39e33c669dacc98833bbc766d8ca693f084a Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Sat, 30 May 2009 19:14:42 -0700 Subject: [PATCH] Make tied accidentals after line breaks configurable. --- input/regression/accidental-tie-overridden.ly | 23 +++++++++++++++++++++++ lily/accidental.cc | 11 +++++++---- scm/define-grob-properties.scm | 2 ++ 3 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 input/regression/accidental-tie-overridden.ly diff --git a/input/regression/accidental-tie-overridden.ly b/input/regression/accidental-tie-overridden.ly new file mode 100644 index 0000000..3d21a79 --- /dev/null +++ b/input/regression/accidental-tie-overridden.ly @@ -0,0 +1,23 @@ +\version "2.12.0" + +\header { + texidoc = "The presence of an accidental after a broken tie can be +overridden." +} +\layout { + ragged-right = ##t +} + +mus = \relative c' { + \override Accidental #'hide-tied-accidental-after-break = ##t + f1~ + f2~f4 % ~ f8 + fis8 gis8 ~ + \break + gis1 +} + +<< + \new NoteNames \mus + \new Voice { \key g \major \mus } +>> diff --git a/lily/accidental.cc b/lily/accidental.cc index 0e81a6b..a017cf8 100644 --- a/lily/accidental.cc +++ b/lily/accidental.cc @@ -67,7 +67,8 @@ Accidental_interface::pure_height (SCM smob, SCM start_scm, SCM) if (to_boolean (me->get_property ("forced")) || !unsmob_grob (me->get_object ("tie")) - || rank == start + 1) /* we are at the start of a line */ + || (rank == start + 1 && /* we are at the start of a line */ + !to_boolean (me->get_property ("hide-tied-accidental-after-break")))) { Stencil *s = unsmob_stencil (get_stencil (me)); if (s) @@ -163,8 +164,9 @@ Accidental_interface::print (SCM smob) Grob *me = unsmob_grob (smob); Grob *tie = unsmob_grob (me->get_object ("tie")); - if (tie && !tie->original () - && !to_boolean (me->get_property ("forced"))) + if (tie && + (to_boolean (me->get_property ("hide-tied-accidental-after-break")) + || (!tie->original () && !to_boolean (me->get_property ("forced"))))) { me->suicide (); return SCM_EOL; @@ -218,8 +220,9 @@ ADD_INTERFACE (Accidental_interface, "alteration " "avoid-slur " "forced " + "glyph-name-alist " + "hide-tied-accidental-after-break " "parenthesized " "restore-first " - "glyph-name-alist " "tie " ); diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index f3a2b6a..bbd6ae3 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -667,6 +667,8 @@ space for the shortest duration. This is expressed in shortest note playing here.") (shortest-starter-duration ,ly:moment? "The duration of the shortest note that starts here.") + (hide-tied-accidental-after-break ,boolean? "If set, an accidental +that appears on a tied note after a line break will not be displayed") (side-axis ,number? "If the value is @code{#X} (or address@hidden@code{0}), the object is placed horizontally next to the other object. If the value is @code{#Y} address@hidden@code{1}, it is -- 1.6.0.4