- if (to_boolean (get_property ("forbidBreak")))
- command_column_->set_property ("line-break-permission", SCM_EOL);
+ if (to_boolean (get_property ("forbidBreak"))
+ && breaks_) /* don't honour forbidBreak if it occurs on the first moment of a score */
+ {
+ command_column_->set_property ("page-turn-permission", SCM_EOL);
+ command_column_->set_property ("page-break-permission", SCM_EOL);
+ command_column_->set_property ("line-break-permission", SCM_EOL);
+ for (vsize i = 0; i < break_events_.size (); i++)
+ {
+ SCM perm = break_events_[i]->get_property ("break-permission");
+ if (scm_is_eq (perm, ly_symbol2scm ("force"))
+ || scm_is_eq (perm, ly_symbol2scm ("allow")))
+ warning (_ ("forced break was overridden by some other event, "
+ "should you be using bar checks?"));
+ }
+ }