]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/score-element.cc
release: 1.1.1
[lilypond.git] / lily / score-element.cc
index cbaadfc4f4b880c7c3e43090003c3f42c7b6479d..a82e50adeea0ce88e5fc2ca749b33bb8c0f46c4e 100644 (file)
@@ -176,6 +176,11 @@ Score_element::do_brew_molecule ()
   if (transparent_b_)
     return;
   Molecule *output= brew_molecule_p ();
+  for (PCursor<Atom*> i(output->atoms_); i.ok(); i++)
+    {
+      i->origin_l_ = this;
+    }
+  
   pscore_l_->outputter_l_->output_molecule (output, absolute_offset (), name());
   delete output;
 }
@@ -291,17 +296,16 @@ Score_element::handle_broken_dependencies()
       Score_element * elt = dependency (i);
       if (elt->line_l() != line)
        {
-         if (dynamic_cast <Spanner *> (elt)) 
+         if (Spanner *sp = dynamic_cast<Spanner *> (elt)) 
            {
-             Spanner * sp = dynamic_cast <Spanner *> (elt);
              Spanner * broken = sp->find_broken_piece (line);
              substitute_dependency (sp, broken);
 
              add_dependency (broken);
            }
-         else if (dynamic_cast <Item *> (elt))
+         else if (Item *original = dynamic_cast <Item *> (elt))
            {
-             Item * my_item = dynamic_cast <Item *> (elt)->find_prebroken_piece (line);
+             Item * my_item = original->find_prebroken_piece (line);
                
              substitute_dependency (elt, my_item);
              if (my_item)