From: Han-Wen Nienhuys Date: Wed, 17 Jan 2007 15:30:36 +0000 (+0100) Subject: Do accidental suicide in print function. X-Git-Tag: release/2.11.12-1 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=10dc620c534c0a9bc8733168e70060cd02c06eaa;p=lilypond.git Do accidental suicide in print function. This fixes possible bug when ly:accidental-interface::print gets called before ly:accidental-interface::after-line-breaking. --- diff --git a/lily/accidental.cc b/lily/accidental.cc index cf47ebcbe1..46db4f4f2f 100644 --- a/lily/accidental.cc +++ b/lily/accidental.cc @@ -31,24 +31,6 @@ parenthesize (Grob *me, Stencil m) return m; } -/* - Hmm. Need separate callback, or perhaps #'live bool property. - */ -MAKE_SCHEME_CALLBACK (Accidental_interface, after_line_breaking, 1); -SCM -Accidental_interface::after_line_breaking (SCM smob) -{ - Grob *me = unsmob_grob (smob); - Grob *tie = unsmob_grob (me->get_object ("tie")); - - if (tie && !tie->original () - && !to_boolean (me->get_property ("forced"))) - { - me->suicide (); - } - - return SCM_UNSPECIFIED; -} /* This callback exists for the sole purpose of allowing us to override its pure equivalent to accidental-interface::pure-height */ @@ -151,7 +133,15 @@ SCM Accidental_interface::print (SCM smob) { Grob *me = unsmob_grob (smob); + Grob *tie = unsmob_grob (me->get_object ("tie")); + if (tie && !tie->original () + && !to_boolean (me->get_property ("forced"))) + { + me->suicide (); + return SCM_EOL; + } + Font_metric *fm = Font_interface::get_default_font (me); SCM alist = me->get_property ("glyph-name-alist"); diff --git a/lily/include/accidental-interface.hh b/lily/include/accidental-interface.hh index 534ac706b5..a90680537f 100644 --- a/lily/include/accidental-interface.hh +++ b/lily/include/accidental-interface.hh @@ -20,7 +20,6 @@ class Accidental_interface public: DECLARE_SCHEME_CALLBACK (print, (SCM)); DECLARE_SCHEME_CALLBACK (calc_stencils, (SCM)); - DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM)); DECLARE_SCHEME_CALLBACK (height, (SCM)); DECLARE_SCHEME_CALLBACK (pure_height, (SCM, SCM, SCM)); diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 2130dab4be..0dc2235031 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -24,8 +24,6 @@ (alteration . ,accidental-interface::calc-alteration) (stencil . ,ly:accidental-interface::print) (Y-extent . ,ly:accidental-interface::height) - (after-line-breaking - . ,ly:accidental-interface::after-line-breaking) (meta . ((class . Item) (interfaces . (accidental-interface font-interface)))))) @@ -37,8 +35,6 @@ (alteration . ,accidental-interface::calc-alteration) (stencil . ,ly:accidental-interface::print) (Y-extent . ,ly:accidental-interface::height) - (after-line-breaking - . ,ly:accidental-interface::after-line-breaking) (meta . ((class . Item) (interfaces . (accidental-interface font-interface)))))) @@ -125,7 +121,6 @@ (stencil . ,ly:accidental-interface::print) (Y-extent . ,ly:accidental-interface::height) (glyph-name-alist . ,standard-alteration-glyph-name-alist) - (after-line-breaking . ,ly:accidental-interface::after-line-breaking) (side-axis . ,X) (meta . ((class . Item) (interfaces . (