- p_ref_->set_grob_property ("breakable", SCM_BOOL_T);
- announce_grob (p_ref_, 0);
+ {
+ p_ref_->set_property ("breakable", SCM_BOOL_T);
+ context ()->set_property ("breakableSeparationItem", p_ref_->self_scm ());
+ }
+
+
+ if (to_boolean (get_property ("createSpacing"))
+ && p_ref_ == break_item_)
+ {
+ Item *it = make_item ("StaffSpacing", SCM_EOL);
+ current_spacings_.staff_spacing_ = it;
+ it->set_property ("left-items", scm_cons (break_item_->self_scm (), SCM_EOL));
+
+
+
+ if (int i = last_spacings_.note_spacings_.size ())
+ {
+ for (; i--;)
+ Pointer_group_interface::add_grob (last_spacings_.note_spacings_[i],
+ ly_symbol2scm ("right-items"),
+ break_item_);
+
+ }
+ else if (last_spacings_.staff_spacing_)
+ {
+ last_spacings_.staff_spacing_->set_property ("right-items",
+ scm_cons (break_item_->self_scm (), SCM_EOL));
+ }
+ }