]> git.donarmstrong.com Git - lilypond.git/commitdiff
Do accidental suicide in print function. release/2.11.12-1
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 17 Jan 2007 15:30:36 +0000 (16:30 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 17 Jan 2007 15:30:36 +0000 (16:30 +0100)
This fixes possible bug when ly:accidental-interface::print gets
called before ly:accidental-interface::after-line-breaking.

lily/accidental.cc
lily/include/accidental-interface.hh
scm/define-grobs.scm

index cf47ebcbe1aed5ae2102624afdad0a6e3a48dae3..46db4f4f2f0bf51af1694c30dfc0fe3827d014e2 100644 (file)
@@ -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");
index 534ac706b558972b22ff6bf644a4250f6e9f38fe..a90680537f9a9eefeca52e8fdee1cc60a93a1c6e 100644 (file)
@@ -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));
   
index 2130dab4be14fe07b8a65170eec4be5f7316ac56..0dc2235031de89d58a5383b643363889cfabde56 100644 (file)
@@ -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))))))
        (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 . (