X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Faxis-group-interface.cc;h=8857de109d6b3cb6ec438fae3578fe22386e2da0;hb=a5ff05c9c855fef9721ce218cde18249610fb88f;hp=f3a099b5df5dfb238fccf7a09768155c0fa8dedf;hpb=f875ef39c544bd3499dae5360e9e24f69933575f;p=lilypond.git diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc index f3a099b5df..8857de109d 100644 --- a/lily/axis-group-interface.cc +++ b/lily/axis-group-interface.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2000--2011 Han-Wen Nienhuys + Copyright (C) 2000--2012 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -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?");