From: Carl Date: Sat, 17 Dec 2011 05:16:38 +0000 (-0700) Subject: Allow string numbers to have #f stencil without programming error (Issue 2085) X-Git-Tag: release/2.15.24-1~53 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=561a0c059bfb202412b373b8969e84e6e7a267cb;p=lilypond.git Allow string numbers to have #f stencil without programming error (Issue 2085) --- diff --git a/input/regression/tablature-harmonic-functions.ly b/input/regression/tablature-harmonic-functions.ly index c09624bbc7..ff6b3868ef 100644 --- a/input/regression/tablature-harmonic-functions.ly +++ b/input/regression/tablature-harmonic-functions.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.23" \header { texidoc = " @@ -35,9 +35,8 @@ test = { \score { << \new Staff { - \new Voice { + \new Voice \with { \override StringNumber #'stencil = ##f } { \clef "treble_8" - \override Voice.StringNumber #'transparent = ##t \test } } diff --git a/lily/new-fingering-engraver.cc b/lily/new-fingering-engraver.cc index efb898bd54..76ec02d69d 100644 --- a/lily/new-fingering-engraver.cc +++ b/lily/new-fingering-engraver.cc @@ -106,9 +106,17 @@ New_fingering_engraver::acknowledge_rhythmic_head (Grob_info inf) else if (ev->in_event_class ("script-event")) add_script (inf.grob (), ev, note_ev); else if (ev->in_event_class ("string-number-event")) - add_fingering (inf.grob (), - ly_symbol2scm ("StringNumber"), &string_numbers_, - ev, note_ev); + { + // String numbers are used in calculating harmonics even + // when we don't want them displayed. So don't make space + // for them if 'stencil is #f + Grob *g = make_item ("StringNumber", ev->self_scm ()); + if (g->get_property ("stencil") != SCM_BOOL_F) + add_fingering (inf.grob (), + ly_symbol2scm ("StringNumber"), &string_numbers_, + ev, note_ev); + g->suicide (); // Kill grob created to check stencil + } else if (ev->in_event_class ("stroke-finger-event")) add_fingering (inf.grob (), ly_symbol2scm ("StrokeFinger"), &stroke_fingerings_,