]> git.donarmstrong.com Git - lilypond.git/commitdiff
(acknowledge_grob): also typeset
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 19 Sep 2002 10:03:00 +0000 (10:03 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 19 Sep 2002 10:03:00 +0000 (10:03 +0000)
LeftEdge item.

ChangeLog
lily/break-align-engraver.cc
lily/grob.cc
lily/system.cc

index a904707014df5995a58161c8d36fc42126167b9b..139f5964691210e7261f68a8beed485edcf479e0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,8 @@
-       
+2002-09-19  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * lily/break-align-engraver.cc (acknowledge_grob): also typeset
+       LeftEdge item.
+
 2002-09-15  Werner Lemberg  <wl@gnu.org>
 
        Improving LilyPond's output to make them ordinary TeX boxes with
index c4d9bc893cc3d011e5994c3e5cc5fa1823a5cddd..414d61db7b94022c15507fa5f1900134b736624a 100644 (file)
@@ -18,6 +18,8 @@ class Break_align_engraver : public Engraver
 {
   Item *align_;
   Protected_scm column_alist_;
+  Item *edge_;
+
   void add_to_group (SCM,Item*);
 protected:
   virtual void finalize ();
@@ -71,13 +73,19 @@ Break_align_engraver::stop_translation_timestep ()
       typeset_grob (align_);
       align_ = 0;
     }
+  if (edge_)
+    {
+      typeset_grob (edge_);
+      edge_ = 0;
+    }
 }
 
 
 Break_align_engraver::Break_align_engraver ()
 {
   column_alist_ = SCM_EOL;
-  align_ =0;
+  edge_ = 0;
+  align_ = 0;
 }
 
 void
@@ -103,9 +111,9 @@ Break_align_engraver::acknowledge_grob (Grob_info inf)
 
          announce_grob (align_, SCM_EOL);
 
-         Item * edge = new Item (get_property ("LeftEdge"));
-         add_to_group (edge->get_grob_property ("break-align-symbol"), edge);
-         announce_grob(edge, SCM_EOL);
+         edge_ = new Item (get_property ("LeftEdge"));
+         add_to_group (edge_->get_grob_property ("break-align-symbol"), edge_);
+         announce_grob(edge_, SCM_EOL);
        }
       
       add_to_group (align_name, item);
index 382cbe2de71742d05c32b45d27aa4594402360ef..d4f2e27bb03213ce77f6875cfca4d55a5fcb3e1a 100644 (file)
@@ -372,6 +372,13 @@ Grob::handle_broken_dependencies ()
 void
 Grob::suicide ()
 {
+  if (!live ())
+    return; 
+
+#if 0 // see below. 
+   String nm = name();
+#endif
+  
   mutable_property_alist_ = SCM_EOL;
   immutable_property_alist_ = SCM_EOL;
 
@@ -383,6 +390,19 @@ Grob::suicide ()
       dim_cache_[a].offset_callbacks_ = SCM_EOL;
       dim_cache_[a].offsets_left_ = 0;
     }
+
+#if 0
+  /*
+    This can make debugging a little easier: we can still know what
+    the object used to be. However, since all its links have been
+    broken, it's usually more convenient to set a conditional
+    breakpoint in GDB before the property lists are wiped.
+   */
+  mutable_property_alist_ = scm_acons (ly_symbol2scm ("name"),
+                                      scm_makfrom0str (nm.to_str0()),
+                                      mutable_property_alist_
+                                      );
+#endif
 }
 
 void
index 7275f543a08a6efddc0acdc9fc09bb272f6c255f..20f97023a8efd4e014c136bfd3e17a99404cddd0 100644 (file)
@@ -275,7 +275,7 @@ System::break_into_pieces (Array<Column_x_positions> const &breaking)
     {
       System *system = dynamic_cast <System*> (clone ());
       system->rank_ = i;
-      //      system->set_immutable_grob_property ("rank", gh_int2scm (i));
+
       Link_array<Grob> c (breaking[i].cols_);
       pscore_->typeset_line (system);