]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/register-group.cc
release: 0.0.50
[lilypond.git] / lily / register-group.cc
index 0725d6c16b8b7dbd850875e11bb64e8b80e7a029..a7573332007163f0bba98f4bf95a94b4c7ebbc7b 100644 (file)
@@ -12,7 +12,7 @@
 #include "register.hh"
 
 bool
-Register_group_register::acceptable_request_b(Request* r)
+Register_group_register::acceptable_request_b(Request* r)const
 {
     for (iter_top(reg_list_, i); i.ok(); i++) {
        if (i->acceptable_request_b(r))
@@ -57,7 +57,8 @@ Register_group_register::post_move_processing()
 void
 Register_group_register::acknowledge_element(Staff_elem_info info)
 {
-    if (!contains_b(info.origin_reg_l_arr_[0]))
+    Request_register* origin = info.origin_reg_l_arr_[0];
+    if (!contains_b(origin) && !origin->contains_b(this))
        return;
     
     for (iter_top(reg_list_, i); i.ok(); i++) 
@@ -65,7 +66,7 @@ Register_group_register::acknowledge_element(Staff_elem_info info)
 }
 
 bool
-Register_group_register::contains_b(Request_register* reg_l)
+Register_group_register::contains_b(Request_register* reg_l)const
 {
     bool parent_b = Request_register::contains_b(reg_l);
     
@@ -93,6 +94,12 @@ Register_group_register::try_request(Request*req_l)
     }
     return false;
 }
+void
+Register_group_register::add(Array<Request_register*> p_arr)
+{
+    for (int i =0; i<p_arr.size(); i++)
+       add(p_arr[i]);
+}
 
 void
 Register_group_register::add(Request_register *reg_p)
@@ -122,6 +129,7 @@ Register_group_register::terminate_register(Request_register*r_l)
 }
 
 IMPLEMENT_STATIC_NAME(Register_group_register);
+ADD_THIS_REGISTER(Register_group_register);
 
 void
 Register_group_register::do_print()const