]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/new-fingering-engraver.cc
Allow string numbers to have #f stencil without programming error (Issue 2085)
[lilypond.git] / lily / new-fingering-engraver.cc
index efb898bd54f864cfcbea00780c778c5b4a1dfbaa..76ec02d69d37b4b83cc5fb2911fd0bf49439028f 100644 (file)
@@ -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_,