X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=inline;f=lily%2Faxis-group-interface.cc;h=31e5b9901cdcfdb3d130aa6ee3e94d42ac3aae3e;hb=f417a6007e951fda4f1fb5fd3da0ecd1d25cec2f;hp=f3a099b5df5dfb238fccf7a09768155c0fa8dedf;hpb=69622b49b7a5a9c992e36ef11ba60c1fdd3c34b6;p=lilypond.git diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc index f3a099b5df..31e5b9901c 100644 --- a/lily/axis-group-interface.cc +++ b/lily/axis-group-interface.cc @@ -31,6 +31,7 @@ #include "separation-item.hh" #include "skyline-pair.hh" #include "staff-grouper-interface.hh" +#include "stem.hh" #include "stencil.hh" #include "system.hh" #include "warn.hh" @@ -81,7 +82,7 @@ Axis_group_interface::relative_group_extent (vector const &elts, Interval Axis_group_interface::relative_maybe_bound_group_extent (vector const &elts, - Grob *common, Axis a, bool bound) + Grob *common, Axis a, bool bound) { Interval r; for (vsize i = 0; i < elts.size (); i++) @@ -326,7 +327,8 @@ Axis_group_interface::relative_pure_height (Grob *me, int start, int end) Interval_t rank_span = g->spanned_rank_interval (); if (rank_span[LEFT] <= end && rank_span[RIGHT] >= start && g->pure_is_visible (start, end) - && !to_boolean (g->get_property ("cross-staff"))) + && !(to_boolean (g->get_property ("cross-staff")) + && Stem::has_interface (g))) { Interval dims = g->pure_height (common, start, end); if (!dims.is_empty ()) @@ -456,8 +458,13 @@ SCM Axis_group_interface::calc_pure_relevant_grobs (SCM smob) { Grob *me = unsmob_grob (smob); + return internal_calc_pure_relevant_grobs (me, "elements"); +} - extract_grob_set (me, "elements", elts); +SCM +Axis_group_interface::internal_calc_pure_relevant_grobs (Grob *me, string grob_set_name) +{ + extract_grob_set (me, grob_set_name.c_str (), elts); vector relevant_grobs; SCM pure_relevant_p = ly_lily_module_constant ("pure-relevant?");