+
+ Real stretchability = ideal - fixed;
+
+ /* 'situational_space' passed by the caller
+ could include full-measure-extra-space */
+ ideal += situational_space;
+
+ Real optical_correction = next_notes_correction (me, last_grob);
+ fixed += optical_correction;
+ ideal += optical_correction;
+
+ Real min_dist = Paper_column::minimum_distance (left_col, right_col);
+
+ /* ensure that the "fixed" distance will leave a gap of at least 0.3 ss. */
+ Real min_dist_correction = max (0.0, 0.3 + min_dist - fixed);
+ fixed += min_dist_correction;
+ ideal = max (ideal, fixed);
+
+ Spring ret (ideal, min_dist);
+ ret.set_inverse_stretch_strength (max (0.0, stretchability));
+ ret.set_inverse_compress_strength (max (0.0, ideal - fixed));
+ return ret;