+ /*
+ This is not very elegant, in that we need special support for
+ hara-kiri. Unfortunately, the generic wiring of
+ force_hara_kiri_callback () (extent and offset callback) is
+ such that we might get into a loop if we call extent () or
+ offset () the elements.
+
+
+ */
+ if (a == Y_AXIS
+ && Hara_kiri_group_spanner::has_interface (elems[j]))
+ Hara_kiri_group_spanner::consider_suicide (elems[j]);
+
+ if (!elems[j]->is_live ())
+ elems.del (j);
+ }
+
+ for (int j = 0; j < elems.size (); j++)
+ {
+ where_f += stacking_dir * dy;
+ translates.push (where_f);
+ v.unite (Interval (where_f, where_f));
+ }
+
+ /*
+ TODO: support self-alignment-{Y, X}
+ */
+ for (int i = 0; i < translates.size (); i++)
+ {
+ elems[i]->translate_axis (translates[i] - v.center (), a);