-MAKE_SCHEME_CALLBACK (System_start_delimiter, after_line_breaking, 1);
-
-SCM
-System_start_delimiter::after_line_breaking (SCM smob)
-{
- Spanner *me = dynamic_cast<Spanner *> (unsmob_grob (smob));
-
- SCM gl = me->get_property ("glyph");
- if (ly_c_equal_p (gl, scm_makfrom0str ("bar-line")))
- {
- int count = 0;
- Paper_column *left_column = me->get_bound (LEFT)->get_column ();
-
- /*
- Get all coordinates, to trigger Hara kiri.
- */
- SCM elts = me->get_property ("elements");
- Grob *common = common_refpoint_of_list (elts, me, Y_AXIS);
- for (SCM s = elts; scm_is_pair (s); s = scm_cdr (s))
- {
- Spanner *staff = dynamic_cast<Spanner*> (unsmob_grob (scm_car (s)));
- if (!staff ||
- staff->get_bound (LEFT)->get_column () != left_column)
- continue;
-
- Interval v = staff->extent (common, Y_AXIS);
-
- if (!v.is_empty ())
- count++;
- }
-
- if (count <= 1)
- {
- me->suicide ();
- }
- }
- return SCM_UNSPECIFIED;
-}
-