+ && scm_is_number (me->get_maybe_pure_property ("staff-padding", pure, start, end))
+ && !quantize_position;
+
+ if (include_staff)
+ common[Y_AXIS] = staff_symbol->common_refpoint (common[Y_AXIS], Y_AXIS);
+
+ Skyline my_dim;
+ Skyline_pair *skyp = Skyline_pair::unsmob (
+ me->get_maybe_pure_property (a == X_AXIS
+ ? "horizontal-skylines"
+ : "vertical-skylines",
+ pure,
+ start,
+ end));
+ if (skyp)
+ {
+ // for spanner pure heights, we don't know horizontal spacing,
+ // so a spanner can never have a meaningful x coordiante
+ // we just give it the parents' coordinate because its
+ // skyline will likely be of infinite width anyway
+ // and we don't want to prematurely trigger H spacing
+ Real xc = a == X_AXIS || (pure && dynamic_cast<Spanner *> (me))
+ ? me->get_parent (X_AXIS)->relative_coordinate (common[X_AXIS], X_AXIS)
+ : me->relative_coordinate (common[X_AXIS], X_AXIS);
+ // same here, for X_AXIS spacing, if it's happening, it should only be
+ // before line breaking. because there is no thing as "pure" x spacing,
+ // we assume that it is all pure
+ Real yc = a == X_AXIS
+ ? me->pure_relative_y_coordinate (common[Y_AXIS], start, end)
+ : me->get_parent (Y_AXIS)->maybe_pure_coordinate (common[Y_AXIS], Y_AXIS, pure, start, end);
+ Skyline_pair copy = Skyline_pair (*skyp);
+ copy.shift (a == X_AXIS ? yc : xc);
+ copy.raise (a == X_AXIS ? xc : yc);
+ my_dim = copy[-dir];
+ }
+ else
+ me->warning ("cannot find skylines - strange alignment will follow");
+