]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.49
authorfred <fred>
Tue, 26 Mar 2002 23:21:40 +0000 (23:21 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:21:40 +0000 (23:21 +0000)
input/test/clefs.ly
lily/clef-engraver.cc
lily/score-element.cc
ly/params.ly

index 227b8a931a0875820da3b9294a4a901cd0548d77..364547fed3bc8fe098863cedb3e281f5cb4333dd 100644 (file)
@@ -11,8 +11,8 @@
          \clef "tenor";c'1^"{tenor}" \bar "||";
          \clef "baritone";c'1^"{baritone}" \bar "||";
          \clef "varbaritone";c'1^"{varbaritone}" \bar "||";
-         \clef "G_8";c'1^"{sub 8?}" \bar "||";
-         \clef "G^8";c'1^"{sup 8?}" \bar "||";
+         \clef "G_8";c'1^"{sub 8?}" c'1 \bar "||";
+         \clef "G^8";c'1^"{sup 8?}" c'1 \bar "||";
          \clef "bass";c'1^"{bass}" \bar "||";
          \clef "subbass";c'1^"{subbass}" \bar "||";
        \property Staff.clefStyle="transparent"
index 8df115231cec6fcfe66261b1edde1a880eed94a3..de2cb687c75b2e73412a4b44a137886a7ad55ae5 100644 (file)
@@ -224,6 +224,14 @@ Clef_engraver::do_pre_move_processing()
          if (octavate_p_)
            octavate_p_->set_elt_property("visibility-lambda", all);
        }
+      else
+       {
+         SCM beg = scm_eval (ly_symbol2scm ("begin-of-line-visible"));
+
+         clef_p_->set_elt_property ("visibility-lambda", beg);
+         if (octavate_p_)
+           octavate_p_->set_elt_property ("visibility-lambda", beg);
+       }
       typeset_element (clef_p_);
       clef_p_ =0;
 
index adede15101459055bd2fb31ff965e027a0e1eb97..c8307754ce4d79021aa0f7c3f27e1172f5631219 100644 (file)
@@ -247,7 +247,7 @@ Score_element::calculate_dependencies (int final, int busy,
   
   status_i_= busy;
 
-  for (SCM d=  get_elt_property ("dependencies"); d != SCM_EOL; d = gh_cdr (d))
+  for (SCM d=  get_elt_property ("dependencies"); gh_pair_p (d); d = gh_cdr (d))
     {
       unsmob_element (gh_car (d))
        ->calculate_dependencies (final, busy, funcptr);
@@ -377,17 +377,22 @@ Score_element::handle_broken_smobs (SCM src, SCM criterion)
        }
       else
        {
-         Score_element * ln = unsmob_element ( criterion);
-         Line_of_score * line = dynamic_cast<Line_of_score*> (ln);
-         Score_element * br =0;
-         Line_of_score * dep_line = sc->line_l ();
+
+         Line_of_score * line = dynamic_cast<Line_of_score*> (unsmob_element ( criterion));
+        Line_of_score * dep_line = sc->line_l ();
          if (dep_line != line)
            {
-             br = sc->find_broken_piece (line);
+           Score_element * br = sc->find_broken_piece (line);
              return  (br) ?  br->self_scm_ : SCM_UNDEFINED;
            }
          if (!dep_line)
            return SCM_UNDEFINED;
+
+         if (!sc->common_refpoint (line, X_AXIS)
+             || !sc->common_refpoint (line, Y_AXIS))
+           {
+             return SCM_UNDEFINED;
+           }
        }
     }
   else if (gh_pair_p (src))
@@ -438,10 +443,28 @@ Score_element::handle_broken_dependencies()
        }
     }
 
+
   Line_of_score *line = line_l();
-  element_property_alist_
-    = handle_broken_smobs (element_property_alist_,
-                          line ? line->self_scm_ : SCM_UNDEFINED);
+
+  if (line && common_refpoint (line, X_AXIS) && common_refpoint (line, Y_AXIS))
+    {
+      element_property_alist_
+       = handle_broken_smobs (element_property_alist_,
+                              line ? line->self_scm_ : SCM_UNDEFINED);
+    }
+  else
+    {
+      /*
+       This element is `invalid'; it has been removed from all dependencies, so
+       let's junk the element itself.
+
+      */
+      element_property_alist_ = SCM_EOL;
+      set_extent_callback (0, Y_AXIS);
+      set_extent_callback (0, X_AXIS);
+    }
+
+
 }
 
 
@@ -609,10 +632,6 @@ Score_element::fixup_refpoint ()
        {
          Score_element * newparent = parent->find_broken_piece (line_l ());
          set_parent (newparent, ax);
-         if (!newparent)
-           {
-             programming_error ("Orphaned score-element.");
-           }
        }
 
       if (Item * i  = dynamic_cast<Item*> (this))
index e0382e13e8f8a301342a74c74190fe8f2edcc40a..6b0629c7ce0038b844a09c3b5fe4697067698051 100644 (file)
@@ -73,7 +73,7 @@ arithmetic_basicspace = 2.0;
 #'Stem_tremolo::beam-width = 1.5 * \quartwidth ; 
 
 #'Left_edge_item::visibility-lambda = #begin-of-line-visible
-#'Clef_item::visibility-lambda = #begin-of-line-visible
+
 #'Key_item::visibility-lambda = #begin-of-line-visible
 #'Breathing_sign::visibility-lambda = #begin-of-line-invisible