From 561a0c059bfb202412b373b8969e84e6e7a267cb Mon Sep 17 00:00:00 2001 From: Carl Date: Fri, 16 Dec 2011 22:16:38 -0700 Subject: [PATCH] Allow string numbers to have #f stencil without programming error (Issue 2085) --- input/regression/tablature-harmonic-functions.ly | 5 ++--- lily/new-fingering-engraver.cc | 14 +++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) 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_, -- 2.39.2