X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fvolta-bracket.cc;h=6877a1a2eb05f7046eb04bf55b34652760524788;hb=e90f0536f9be39ada0bef0aeb0d275dec3b2fb5b;hp=cfae83259c5dde05c877f76458af25da9a3cd9b7;hpb=2eb63c6977706ba261e4ee0674c734a34b3ee904;p=lilypond.git diff --git a/lily/volta-bracket.cc b/lily/volta-bracket.cc index cfae83259c..6877a1a2eb 100644 --- a/lily/volta-bracket.cc +++ b/lily/volta-bracket.cc @@ -1,9 +1,20 @@ /* - volta-bracket.cc -- implement Volta_bracket_interface + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2011 Jan Nieuwenhuizen - (c) 1997--2007 Jan Nieuwenhuizen + 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 @@ -46,14 +57,17 @@ Volta_bracket_interface::print (SCM smob) Item *bound = dynamic_cast (me)->get_bound (LEFT); /* - not a start, but really broken in two + If the volta bracket appears after a line-break, make + it start after the prefatory matter. */ Real left = 0.; if (bound->break_status_dir () == RIGHT) { Paper_column *pc = bound->get_column (); - left = pc->extent (pc, X_AXIS)[RIGHT] - - bound->relative_coordinate (pc, X_AXIS); + left = pc->break_align_width (pc, ly_symbol2scm ("break-alignment"))[RIGHT] + // For some reason, break_align_width is relative to + // the x-parent of the column. + - bound->relative_coordinate (pc->get_parent (X_AXIS), X_AXIS); } else { @@ -132,6 +146,8 @@ Volta_bracket_interface::modify_edge_height (Spanner *me) && str != "|:" && str != "|." && str != ":|:" + && str != ":|.|:" + && str != ":|.:" && str != ".|"); if (no_vertical_end || no_vertical_start)