- me->set_grob_property ("alignment-done", SCM_BOOL_T);
-
- SCM d = me->get_grob_property ("stacking-dir");
-
- Direction stacking_dir = gh_number_p (d) ? to_dir (d) : CENTER;
- if (!stacking_dir)
- stacking_dir = DOWN;
-
- Interval threshold = Interval (0, Interval::infinity ());
- SCM thr = me->get_grob_property ("threshold");
- if (gh_pair_p (thr))
+ extract_grob_set (me, "elements", all_grobs);
+
+ vector<Real> translates = get_extents_aligned_translates (me, all_grobs, a, false, 0, 0);
+ if (translates.size ())
+ for (vsize j = 0; j < all_grobs.size (); j++)
+ all_grobs[j]->translate_axis (translates[j], a);
+}
+
+/* After we have already determined the y-offsets of our children, we may still
+ want to stretch them a little. */
+void
+Align_interface::stretch (Grob *me, Real amount, Axis a)
+{
+ extract_grob_set (me, "elements", elts);
+ Real non_empty_elts = stretchable_children_count (me);
+ Real offset = 0.0;
+ Direction dir = robust_scm2dir (me->get_property ("stacking-dir"), DOWN);
+ for (vsize i = 1; i < elts.size (); i++)