+/*
+ We need the callback. The real stencil has ledgers depending on
+ Y-position. The Y-position is known only after line breaking. */
+SCM
+Rest::generic_extent_callback (Grob *me, Axis a)
+{
+ /*
+ Don't want ledgers: ledgers depend on Y position, which depends on
+ rest collision, which depends on stem size which depends on beam
+ slop of opposite note column.
+
+ consequence: we get too small extents and potential collisions
+ with ledgered rests.
+ */
+ SCM m = brew_internal_stencil (me, a != X_AXIS);
+ return ly_interval2scm (unsmob<Stencil> (m)->extent (a));
+}
+
+MAKE_SCHEME_CALLBACK (Rest, pure_height, 3);
+SCM
+Rest::pure_height (SCM smob,
+ SCM /* start */,
+ SCM /* end */)
+{
+ Grob *me = unsmob<Grob> (smob);
+ SCM m = brew_internal_stencil (me, false);
+ return ly_interval2scm (unsmob<Stencil> (m)->extent (Y_AXIS));
+}