- if (Grob* a = unsmob_grob (g->get_property ("arpeggio")))
- {
- max_corr = max_corr >? (- a->extent (col, X_AXIS)[LEFT]);
- }
-
- /*
- Let's decrease the space a little if the problem is not located
- after a barline.
- */
- if (bar_size.is_empty ())
- max_corr *= 0.75;
-
- if (!bar_size.is_empty ())
- if (Grob *stem = Note_column::get_stem (g))
- {
- Direction d = Stem::get_direction (stem);
- if (d == DOWN)
- {
- Real stem_start = Stem::head_positions (stem) [DOWN];
- Real stem_end = Stem::stem_end_position (stem);
- Interval stem_posns (stem_start <? stem_end,
- stem_end >? stem_start);
-
- stem_posns.intersect (bar_size);
-
- Real corr = abs (stem_posns.length ()/7.) <? 1.0;
- corr *=
- robust_scm2double (me->get_property ("stem-spacing-correction"), 1);
-
- if (d != DOWN)
- corr = 0.0;
- max_corr = max_corr >? corr;
- }
- }
- return max_corr;