X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstem.cc;h=947a429c23f472770474dd10c9fb8abb8a4053e6;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=2fad60d10598f139753cfa87e5c11bab0feb8605;hpb=a4bba9bab67d47c5601ac84cffb4cbbc34c2a162;p=lilypond.git diff --git a/lily/stem.cc b/lily/stem.cc index 2fad60d105..947a429c23 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -91,7 +91,7 @@ Stem::get_beaming (Grob *me, Direction d) SCM lst = index_get_cell (pair, d); - int len = scm_ilength (lst); + int len = scm_ilength (lst); // -1 for dotted lists! return max (len, 0); } @@ -266,9 +266,9 @@ Stem::add_head (Grob *me, Grob *n) { n->set_object ("stem", me->self_scm ()); - if (Note_head::has_interface (n)) + if (has_interface (n)) Pointer_group_interface::add_grob (me, ly_symbol2scm ("note-heads"), n); - else if (Rest::has_interface (n)) + else if (has_interface (n)) Pointer_group_interface::add_grob (me, ly_symbol2scm ("rests"), n); } @@ -552,6 +552,7 @@ Stem::calc_positioning_done (SCM smob) } bool parity = true; Real lastpos = Real (Staff_symbol_referencer::get_position (heads[0])); + int threshold = robust_scm2int (me->get_property ("note-collision-threshold"), 1); for (vsize i = 1; i < heads.size (); i++) { Real p = Staff_symbol_referencer::get_position (heads[i]); @@ -561,7 +562,7 @@ Stem::calc_positioning_done (SCM smob) dy should always be 0.5, 0.0, 1.0, but provide safety margin for rounding errors. */ - if (dy < 1.1) + if (dy < 0.1 + threshold) { if (parity) { @@ -1184,6 +1185,7 @@ ADD_INTERFACE (Stem, "neutral-direction " "no-stem-extend " "note-heads " + "note-collision-threshold " "positioning-done " "rests " "stem-begin-position "