]> git.donarmstrong.com Git - lilypond.git/commitdiff
(acknowledge_grob): avoid more
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 22 Sep 2004 16:37:42 +0000 (16:37 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 22 Sep 2004 16:37:42 +0000 (16:37 +0000)
objects.

ChangeLog
lily/dot-column-engraver.cc
lily/phrasing-slur-engraver.cc
lily/slur-scoring.cc

index 741fc100e76b6be31bbbef82b189700b632e1eac..142b1f19fb9ea27e3bd357adf09330b3079e342e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2004-09-22  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * lily/phrasing-slur-engraver.cc (acknowledge_grob): avoid more
+       objects.
+
        * lily/beam-concave.cc (calc_concaveness): take absolute value of
        dy for scaling. This fixes various downbeams.
        
index 141f2cfec63e01ea890945e5fa86469026548616..61e4323e07fe9e029c20cde5fe7f15ea85a969a0 100644 (file)
@@ -30,22 +30,22 @@ protected:
 
 Dot_column_engraver::Dot_column_engraver ()
 {
-  dotcol_ =0;
+  dotcol_ = 0;
   stem_ = 0;
 }
 
 void
 Dot_column_engraver::stop_translation_timestep ()
 {
-      /*
-       Add the stem to the support so dots stay clear of flags.
+  /*
+    Add the stem to the support so dots stay clear of flags.
 
-       See [Ross, p 171]
-       */
-      if (stem_ && dotcol_)
-       dotcol_->set_property ("stem", stem_->self_scm ());
+    See [Ross, p 171]
+  */
+  if (stem_ && dotcol_)
+    dotcol_->set_property ("stem", stem_->self_scm ());
       
-      dotcol_ =0;
+  dotcol_ =0;
   heads_.clear ();
   stem_ =0;
 }
index 06226cefa6c068c2625edbee61be0fe07d927862..2250da3a4aee37ad7635cf0b90439943ed3019ee 100644 (file)
@@ -83,12 +83,29 @@ Phrasing_slur_engraver::acknowledge_grob (Grob_info info)
   else
     {
       /*
-       TODO: maybe take more objects?  
-       */
-      for (int i = slurs_.size (); i--; )
-       Slur::add_extra_encompass (slurs_[i], e);
-      for (int i = end_slurs_.size (); i--; )
-       Slur::add_extra_encompass (end_slurs_[i], e);
+       ugh. cut & paste from slur-engraver.cc
+      */
+      SCM inside = e->get_property ("inside-slur");
+      if (Tie::has_interface (e)
+         || to_boolean (inside))
+       {
+         for (int i = slurs_.size (); i--; )
+           Slur::add_extra_encompass (slurs_[i], e);
+         for (int i = end_slurs_.size (); i--; )
+           Slur::add_extra_encompass (end_slurs_[i], e);
+       }
+      else if (inside == SCM_BOOL_F)
+       {
+         Grob *slur = slurs_.size()?slurs_[0] : 0;
+         slur =  (end_slurs_.size () && !slur)
+           ? end_slurs_[0] : slur;
+
+         if (slur)
+           {
+             e->add_offset_callback (Slur::outside_slur_callback_proc, Y_AXIS);
+             e->set_property ("slur", slur->self_scm());
+           }
+       }
     }
 }
 
@@ -133,6 +150,6 @@ ENTER_DESCRIPTION (Phrasing_slur_engraver,
 /* descr */       "Print phrasing slurs. Similar to @ref{Slur_engraver}",
 /* creats*/       "PhrasingSlur",
 /* accepts */     "phrasing-slur-event",
-/* acks  */       "note-column-interface slur-interface",
+/* acks  */       "note-column-interface tie-interface fingering-interface script-interface slur-interface",
 /* reads */       "",
 /* write */       "");
index 1f904c18dea4b7b82d54959f4553c6a3ea1ca491..149a3c67c94a937714c804c48a1016be9fb70926 100644 (file)
@@ -1195,7 +1195,6 @@ score_extra_encompass (Grob *me, Grob *common[],
 
          if (!found)
            {
-             
              Real x = collision_infos[j].extents_[X_AXIS]
                .linear_combination (collision_infos[j].idx_);