- 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 (perm == ly_symbol2scm ("force") || perm == ly_symbol2scm ("allow"))
+ warning (_ ("forced break was overridden by some other event, "
+ "should you be using bar checks?"));
+ }
+ }