CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Han-Wen Nienhuys <[EMAIL PROTECTED]>    05/10/01 22:52:38

Modified files:
        .              : ChangeLog 
        lily           : tuplet-bracket.cc 

Log message:
        (after_line_breaking): suicide empty
        tuplet bracket.
        (print): only connect to next bracket if the next one is alive.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.4144&tr2=1.4145&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/tuplet-bracket.cc.diff?tr1=1.106&tr2=1.107&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.4144 lilypond/ChangeLog:1.4145
--- lilypond/ChangeLog:1.4144   Fri Sep 30 21:39:26 2005
+++ lilypond/ChangeLog  Sat Oct  1 22:52:37 2005
@@ -1,3 +1,9 @@
+2005-10-02  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
+
+       * lily/tuplet-bracket.cc (after_line_breaking): suicide empty
+       tuplet bracket.
+       (print): only connect to next bracket if the next one is alive.
+
 2005-09-30  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
 
        * lily/bar-number-engraver.cc: correct docs.
Index: lilypond/lily/tuplet-bracket.cc
diff -u lilypond/lily/tuplet-bracket.cc:1.106 
lilypond/lily/tuplet-bracket.cc:1.107
--- lilypond/lily/tuplet-bracket.cc:1.106       Mon Sep 12 23:33:24 2005
+++ lilypond/lily/tuplet-bracket.cc     Sat Oct  1 22:52:38 2005
@@ -167,9 +167,28 @@
       x_span[d] = robust_relative_extent (bounds[d], commonx, X_AXIS)[d];
       Direction break_dir = bounds[d]->break_status_dir ();
       Spanner *orig_spanner = dynamic_cast<Spanner *> (me->original_);
+
+      int neighbor_idx = me->get_break_index () - break_dir;
+
+      /*
+       UGH. dependency handling.
+       */
+      if (break_dir
+         && d == RIGHT
+         && neighbor_idx < orig_spanner->broken_intos_.size ())
+       {
+         Grob *neighbor = orig_spanner->broken_intos_[neighbor_idx];
+
+         // ugh, should inspect callback?  
+         Tuplet_bracket::after_line_breaking (neighbor->self_scm ());
+       }
+
       connect_to_other[d]
        = (break_dir
-          && (me->get_break_index () - break_dir < 
orig_spanner->broken_intos_.size ()));
+          && (neighbor_idx < orig_spanner->broken_intos_.size ()
+              && neighbor_idx >= 0)
+          && orig_spanner->broken_intos_[neighbor_idx]->is_live ());
+          
 
       if (connect_to_other[d])
        {
@@ -554,13 +573,18 @@
 }
 
 MAKE_SCHEME_CALLBACK (Tuplet_bracket, after_line_breaking, 1);
-
 SCM
 Tuplet_bracket::after_line_breaking (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
   extract_grob_set (me, "note-columns", columns);
 
+  if (columns.is_empty())
+    {
+      me->suicide ();
+      return SCM_UNSPECIFIED;
+    }
+  
   Direction dir = get_grob_direction (me);
   if (!dir)
     {


_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to