diff --git a/lily/bar-line.cc b/lily/bar-line.cc index 2a9cf9d..c8f377b 100644 --- a/lily/bar-line.cc +++ b/lily/bar-line.cc @@ -26,21 +26,21 @@ #include "output-def.hh" #include "paper-column.hh" #include "staff-symbol-referencer.hh" +#include "staff-symbol.hh" MAKE_SCHEME_CALLBACK (Bar_line, calc_bar_extent, 1) SCM Bar_line::calc_bar_extent (SCM smob) { + Interval result; Grob *me = unsmob_grob (smob); + if (Grob *staff = Staff_symbol_referencer::get_staff_symbol (me)) + { + Real ss = Staff_symbol::staff_space (staff); + result = Staff_symbol::line_span (staff) * (ss / 2.0); + } - SCM size = me->get_property ("bar-size"); - - if (!scm_is_number (size) - || !Staff_symbol_referencer::get_staff_symbol (me)) - return ly_interval2scm (Interval ()); - - Real h = scm_to_double (size); - return ly_interval2scm (Interval (-h / 2, h / 2)); + return ly_interval2scm (result); } Interval