- Item* t = get_bound (d)
- ? get_bound (d) : get_bound ((Direction)-d);
- if (d == LEFT)
- dx_f_drul_[d] += t->extent (X_AXIS).length ();
- else
- dx_f_drul_[d] -= d * gap / 2;
+ /* OK, we have a problem. Usually this means that we're on the
+ first column, and we have a long lyric which extends to near
+ the offset for stuff */
+ /* This test for being on the first column has been shamelessly
+ ripped from spanner.cc */
+ Paper_column *sc = dynamic_cast<Paper_column*> (sp->get_bound (LEFT)->get_column ());
+ if (sc != NULL &&
+ sc->break_status_dir () == RIGHT)
+ {
+ /* We are on the first column, so it's probably harmless to
+ get the minimum length back by extending leftwards into
+ the space under the clef/key sig/time sig */
+ bounds[LEFT] = bounds[RIGHT] - l;
+ }
+ else
+ {
+ /* We can't get the length desired. Maybe we should warn. */
+ l = w;
+ }