I got about halfway through, but then it got too complicated with the various ways to compute the Dots' Y-offset under various conditions.
http://codereview.appspot.com/5992073/diff/5001/lily/dot-column.cc File lily/dot-column.cc (right): http://codereview.appspot.com/5992073/diff/5001/lily/dot-column.cc#newcode163 lily/dot-column.cc:163: are due to the fact that this callback is called before line breaking "this callback *may be* called" There seems to be nothing enforcing that dot-positioning is done at any particular time. http://codereview.appspot.com/5992073/diff/5001/lily/dot-column.cc#newcode195 lily/dot-column.cc:195: int p = before_line_breaking & Dots::in_dot_column_with_beam_and_rest (dp.dot_) This looks suspicious at first. But it seems that whenever this specific condition is true, get_rounded_position() would return 0 anyway. http://codereview.appspot.com/5992073/diff/5001/lily/dot-column.cc#newcode203 lily/dot-column.cc:203: It seems we want to just skip the collision resolution for dots on rests, and let them ride with the rest, one position higher than the center of the rest. if (Rest::has_interface (note)) { cfg[p+1] = dp; continue; } http://codereview.appspot.com/5992073/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel