Drul_array<Skyline> skys = Spacing_interface::skylines (me, right_col);
Real distance = skys[LEFT].distance (skys[RIGHT]);
Real min_dist = max (0.0, distance);
- Real min_desired_space = left_head_end + (min_dist - left_head_end) / 2;
+ Real min_desired_space = left_head_end + (min_dist - left_head_end + base_space - increment) / 2;
Real ideal = base_space - increment + left_head_end;
/* If we have a NonMusical column on the right, we measure the ideal distance
Bar_line::has_interface);
if (bar)
- ideal -= bar->extent (right_col, X_AXIS)[LEFT];
+ {
+ Real shift = bar->extent (right_col, X_AXIS)[LEFT];
+ ideal -= shift;
+ min_desired_space -= max (shift, 0.0);
+ }
}
ideal = max (ideal, min_desired_space);
stem_dir_correction (me, right_col, increment, &ideal, &min_desired_space);
- Spring ret (ideal, min_dist);
- ret.set_inverse_compress_strength (max (0.0, ideal - max (min_dist, min_desired_space)));
+ Spring ret (max (0.0, ideal), min_dist);
+ ret.set_inverse_compress_strength (max (0.0, ideal - min_desired_space));
ret.set_inverse_stretch_strength (max (0.1, base_space - increment));
return ret;
}
for (vsize i = 0; i < items.size (); i++)
{
Item *it = dynamic_cast<Item *> (items[i]);
+ if (!Note_column::has_interface (it))
+ continue;
/*
don't correct if accidentals are sticking out of the right side.