- /* backwards-compatibility hack for the old page-breaker */
- SCM turn_perm = left_bound->get_property ("page-break-permission");
- if (!scm_is_symbol (turn_perm))
- pl->set_property ("penalty", scm_from_double (10001.0));
- else if (turn_perm == ly_symbol2scm ("force"))
- pl->set_property ("penalty", scm_from_double (-10001.0));
- else
- pl->set_property ("penalty", scm_from_double (0.0));
-
- if (!scm_is_pair (pl->get_property ("refpoint-Y-extent")))
- {
- Interval staff_refpoints;
- staff_refpoints.set_empty ();
- extract_grob_set (this, "spaceable-staves", staves);
- for (vsize i = 0; i < staves.size (); i++)
- {
- Grob *g = staves[i];
- staff_refpoints.add_point (g->relative_coordinate (this, Y_AXIS));
- }
- pl->set_property ("refpoint-Y-extent", ly_interval2scm (staff_refpoints));
- }
+ /* information that the page breaker might need */
+ Grob *right_bound = this->get_bound (RIGHT);
+ pl->set_property ("vertical-skylines", this->get_property ("vertical-skylines"));
+ pl->set_property ("page-break-permission", right_bound->get_property ("page-break-permission"));
+ pl->set_property ("page-turn-permission", right_bound->get_property ("page-turn-permission"));
+ pl->set_property ("page-break-penalty", right_bound->get_property ("page-break-penalty"));
+ pl->set_property ("page-turn-penalty", right_bound->get_property ("page-turn-penalty"));