]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.56
authorfred <fred>
Sun, 24 Mar 2002 19:59:45 +0000 (19:59 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:59:45 +0000 (19:59 +0000)
lily/engraver-group.cc
lily/include/engraver-group.hh

index a50b078062930c3038fd05122ef4ede5bcf3654f..29ce749fabe28fc0f1d1d260392441fa7a5513ec 100644 (file)
@@ -42,20 +42,30 @@ Engraver_group_engraver::do_announces()
   Request dummy_req;
 
   Link_array<Translator> nongroups = nongroup_l_arr ();
-  for (int j =0; j < announce_info_arr_.size(); j++)
+  while (announce_info_arr_.size ())
     {
-      Score_elem_info info = announce_info_arr_[j];
-
-      if (!info.req_l_)
-       info.req_l_ = &dummy_req;
-      for (int i=0; i < nongroups.size(); i++) 
-       {       // Is this good enough?
+      for (int j =0; j < announce_info_arr_.size(); j++)
+       {
+         Score_elem_info info = announce_info_arr_[j];
+         
+         if (!info.req_l_)
+           info.req_l_ = &dummy_req;
+         for (int i=0; i < nongroups.size(); i++) 
+           {   // Is this good enough?
+             Engraver * eng = nongroups[i]->engraver_l ();
+             if (eng && eng!= info.origin_grav_l_arr_[0])
+               eng->acknowledge_element (info);
+           }
+       }
+      announce_info_arr_.clear ();
+      for (int i=0; i < nongroups.size(); i++)
+       {
          Engraver * eng = nongroups[i]->engraver_l ();
-         if (eng && eng!= info.origin_grav_l_arr_[0])
-           eng->acknowledge_element (info);
+         if (eng)
+           eng->process_acknowledged ();
        }
+
     }
-  announce_info_arr_.clear();
 }
 
 
index 9f3dc8b78a3275f99801861a587150fde51feabf..72f14f3c3cdb6f20e358a0753120a3ab00f3aed6 100644 (file)
@@ -22,7 +22,9 @@
   Group a number of engravers. Usually delegates everything to its contents.
   Postfix: group
   */
-class Engraver_group_engraver : public Engraver, public virtual Translator_group {
+class Engraver_group_engraver : public Engraver,
+                               public virtual Translator_group
+{
 protected:
   Array<Score_elem_info> announce_info_arr_;
 public:
@@ -33,7 +35,7 @@ public:
   DECLARE_MY_RUNTIME_TYPEINFO;
     
   virtual Staff_info get_staff_info() const;
-  virtual void do_announces();    
+  virtual void do_announces();
   virtual void announce_element (Score_elem_info);
 };