From: Joe Neeman Date: Sat, 26 Jun 2010 09:00:29 +0000 (+0300) Subject: Fix 1152. X-Git-Tag: release/2.13.27-1~73 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0cafb00c0023523503bc57644ac334eda127eaad;p=lilypond.git Fix 1152. Ensure that the voice-based positioning of a rest is used for horizontal spacing, even if there is a Rest_collision involved. --- diff --git a/input/regression/spacing-accidental-rest.ly b/input/regression/spacing-accidental-rest.ly new file mode 100644 index 0000000000..aec60b94f5 --- /dev/null +++ b/input/regression/spacing-accidental-rest.ly @@ -0,0 +1,8 @@ +\version "2.13.25" + +\header { + texidoc = "Accidentals don't collide with shifted-down rests." +} + +\new Staff << g'4 \\ {r8 aeses} >> + diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 778c0cfdc1..a76dd31655 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -2388,6 +2388,11 @@ (else '(0 . 0))))) +;; Sometimes, a pure callback will be chained to a non-pure callback via +;; chain_offset_callback, in which case this provides a default by simply +;; passing through the value from the pure callback. +(define (pure-chain-offset-callback grob start end prev-offset) prev-offset) + (define pure-conversions-alist `( (,ly:accidental-interface::height . ,ly:accidental-interface::pure-height) @@ -2395,6 +2400,7 @@ (,ly:axis-group-interface::height . ,ly:axis-group-interface::pure-height) (,ly:grob::stencil-height . ,pure-stencil-height) (,ly:hara-kiri-group-spanner::y-extent . ,ly:hara-kiri-group-spanner::pure-height) + (,ly:rest-collision::force-shift-callback-rest . ,pure-chain-offset-callback) (,ly:rest::height . ,ly:rest::pure-height) (,ly:self-alignment-interface::y-aligned-on-self . ,ly:self-alignment-interface::pure-y-aligned-on-self) (,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side)