]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/engraver-group.cc
release: 0.1.56
[lilypond.git] / lily / engraver-group.cc
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();
 }