]> git.donarmstrong.com Git - lilypond.git/commitdiff
Make tied accidentals after line breaks configurable.
authorJoe Neeman <joeneeman@gmail.com>
Sun, 31 May 2009 02:14:42 +0000 (19:14 -0700)
committerJoe Neeman <joeneeman@gmail.com>
Sat, 6 Jun 2009 06:26:49 +0000 (09:26 +0300)
input/regression/accidental-tie-overridden.ly [new file with mode: 0644]
lily/accidental.cc
scm/define-grob-properties.scm

diff --git a/input/regression/accidental-tie-overridden.ly b/input/regression/accidental-tie-overridden.ly
new file mode 100644 (file)
index 0000000..3d21a79
--- /dev/null
@@ -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 }
+>>
index 0e81a6bea299105e2a66cf1459e2de6b8a03a588..a017cf8dea80f6af9dafee897e2fc58a141461d8 100644 (file)
@@ -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 "
               );
index f3a2b6a752928e8cf64e776cbe374b40f6c0a7a7..3c90fe8416ebe2a73b247462d5d6b13f6bd4762f 100644 (file)
@@ -428,6 +428,8 @@ semitie?")
 units.")
      (height-limit ,ly:dimension? "Maximum slur height: The longer the
 slur, the closer it is to this height.")
+     (hide-tied-accidental-after-break ,boolean? "If set, an accidental
+that appears on a tied note after a line break will not be displayed")
      (horizontal-shift ,integer? "An integer that identifies ranking
 of @code{NoteColumn}s for horizontal shifting.  This is used by
 @rinternals{note-collision-interface}.")