- if (bounds[d]->break_status_dir())
- {
- Interval overshoot (robust_scm2drul (me->get_property ("break-overshoot"),
- Interval (-0.5, 1.0)));
-
- if (d == RIGHT)
- x_span[d] += d * overshoot[d];
- else
- x_span[d] = robust_relative_extent(bounds[d], commonx, X_AXIS)[RIGHT]
- - overshoot[LEFT];
- }
+ if (connect_to_other[d])
+ {
+ Interval overshoot (robust_scm2drul (me->get_property ("break-overshoot"),
+ Interval (-0.5, 0.0)));
+
+ if (d == RIGHT)
+ x_span[d] += d * overshoot[d];
+ else
+ x_span[d] = robust_relative_extent (bounds[d],
+ commonx, X_AXIS)[RIGHT]
+ - overshoot[LEFT];
+ }
+
+ else if (d == RIGHT
+ && (columns.empty ()
+ || (bounds[d]->get_column ()
+ != dynamic_cast<Item *> (columns.back ())->get_column ())))
+ {
+ /*
+ We're connecting to a column, for the last bit of a broken
+ fullLength bracket.
+ */
+ Real padding
+ = robust_scm2double (me->get_property ("full-length-padding"), 1.0);
+
+ if (bounds[d]->break_status_dir ())
+ padding = 0.0;
+
+ Real coord = bounds[d]->relative_coordinate (commonx, X_AXIS);
+ if (to_boolean (me->get_property ("full-length-to-extent")))
+ coord = robust_relative_extent (bounds[d], commonx, X_AXIS)[LEFT];
+
+ coord = max (coord, x_span[LEFT]);
+
+ x_span[d] = coord - padding;
+ }