From 334d93492412255fcc7263123b68e5afbebb7b0a Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Thu, 5 Jul 2007 20:59:03 +1000 Subject: [PATCH] Revert "Do accidental suicide in print function." This reverts commit b80bb48c60f47bc0467da545f3a3b72e261210c7. this commit caused bug 381 --- lily/accidental.cc | 26 ++++++++++++++++++-------- lily/include/accidental-interface.hh | 1 + scm/define-grobs.scm | 5 +++++ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/lily/accidental.cc b/lily/accidental.cc index 3e5d0475f7..73a1c80f36 100644 --- a/lily/accidental.cc +++ b/lily/accidental.cc @@ -31,6 +31,24 @@ 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 */ @@ -140,15 +158,7 @@ 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 a90680537f..534ac706b5 100644 --- a/lily/include/accidental-interface.hh +++ b/lily/include/accidental-interface.hh @@ -20,6 +20,7 @@ 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 6159e81f94..7371cbbf10 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -24,6 +24,8 @@ (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)))))) @@ -35,6 +37,8 @@ (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)))))) @@ -121,6 +125,7 @@ (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 . ( -- 2.39.2