- if (!stem_l_ || !rest_b ())
- return;
-
- Beam * b = stem_l_->beam_l_;
- if (!b || !b->stems_.size ())
- return;
-
- /* ugh. Should be done by beam. */
- Direction d = stem_l_->get_dir ();
- Real beamy = (stem_l_->hpos_f () - b->stems_[0]->hpos_f ()) * b->slope_f_ + b->left_y_;
-
- Real staff_space = rest_l_arr_[0]->staff_line_leading_f ();
- Real rest_dim = extent (Y_AXIS)[d]*2.0 /staff_space ;
-
- Real minimum_dist
- = paper_l ()->get_var ("restcollision_minimum_beamdist") ;
- Real dist =
- minimum_dist + -d * (beamy - rest_dim) >? 0;
+ extract_grob_set (me, "note-heads", heads);
+ Grob *acc = 0;
+ for (vsize i = 0; i < heads.size (); i++)
+ {
+ Grob *h = heads[i];
+ acc = h ? unsmob_grob (h->get_object ("accidental-grob")) : 0;
+ if (acc)
+ break;
+ }