-/* return either
- - the last column with a special (ie. not "|" or "") barline
- - the last column
- after the given moment
-*/
-Paper_column*
-Paper_column_engraver::find_turnable_column (Moment after_this)
-{
- if (last_special_barline_column_)
- {
- Moment m = *unsmob_moment (last_special_barline_column_->get_property ("when"));
- if (m >= after_this)
- return last_special_barline_column_;
- }
- if (last_breakable_column_)
- {
- Moment m = *unsmob_moment (last_breakable_column_->get_property ("when"));
- if (m >= after_this)
- return last_breakable_column_;
- }
- return 0;
-}
-
-void
-Paper_column_engraver::revoke_page_turns (Moment after_this, Real new_penalty)
-{
- if (!page_turnable_columns_.size ())
- return;
-
- for (vsize i = page_turnable_columns_.size () - 1; i--;)
- {
- Paper_column *col = page_turnable_columns_[i];
- Moment mom = *unsmob_moment (col->get_property ("when"));
- if (mom >= after_this)
- {
- if (isinf (new_penalty))
- {
- col->del_property ( ly_symbol2scm ("page-turn-permission"));
- page_turnable_columns_.erase (page_turnable_columns_.begin () + i);
- }
- else
- {
- Real prev_pen = robust_scm2double (col->get_property ("page-turn-penalty"), 0);
- if (new_penalty > prev_pen)
- col->set_property ("page-turn-penalty", scm_from_double (new_penalty));
- }
- }
- }
-}
-