X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Frest-collision.cc;h=ef277d6f0dfde3d5d38bd18ed339992505422bcb;hb=17bbb6c41ea42252d7eacc1d2be2da8fdf6d9d37;hp=29313f1ccbac720f4d64466c72e0b79eb75c55be;hpb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;p=lilypond.git diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index 29313f1ccb..ef277d6f0d 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -1,9 +1,20 @@ /* - rest-collision.cc -- implement Rest_collision + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2009 Han-Wen Nienhuys - (c) 1997--2008 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "rest-collision.hh" @@ -14,6 +25,7 @@ using namespace std; #include "directional-element-interface.hh" #include "duration.hh" #include "international.hh" +#include "item.hh" #include "note-column.hh" #include "output-def.hh" #include "pointer-group-interface.hh" @@ -228,7 +240,10 @@ Rest_collision::calc_positioning_done (SCM smob) Interval notedim; for (vsize i = 0; i < notes.size (); i++) { - if (Note_column::dir (notes[i]) == -dir) + if (Note_column::dir (notes[i]) == -dir + // If the note has already happened (but it has a long duration, so there is a collision), + // don't look at the stem. If we do, the rest gets shifted down a lot and it looks bad. + || dynamic_cast (notes[i])->get_column () != dynamic_cast (rest)->get_column ()) { /* try not to look at the stem, as looking at a beamed note may trigger beam positioning prematurely.