]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/tuplet-bracket.cc (print): suicide if no control-points.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 19 Dec 2005 16:56:38 +0000 (16:56 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 19 Dec 2005 16:56:38 +0000 (16:56 +0000)
* lily/tuplet-number.cc (print): new file, new interface.

* lily/tuplet-bracket.cc (calc_control_points): new function
(calc_connect_to_neighbors): new function.
(print): remove text handling for tuplet numberdef.

* scm/define-grobs.scm (all-grob-descriptions): new grob TupletNumber

* lily/tuplet-bracket.cc (calc_position_and_height): use
staff-padding to control whether tuplet brackets are over staves.

* lily/grob.cc (suicide): clear dim_caches_.

* lily/grob.cc (extent): swap order of min-extent and extent
calculations. This fixes hara kiri staves.

ChangeLog
lily/grob.cc
lily/new-fingering-engraver.cc
lily/side-position-interface.cc
lily/tuplet-bracket.cc
lily/tuplet-number.cc
scm/define-grobs.scm

index df4c710624414700406120e97b67ac67045139ef..71bc3207a9a274a3ac2bf4239f7fe07bde0e4861 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2005-12-19  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * lily/tuplet-bracket.cc (print): suicide if no control-points. 
+
        * python/convertrules.py (conv): rule for number-visibility
 
        * lily/slur-configuration.cc (score_extra_encompass): different
index 8d0529b41008eb986b58a6c3025643a0f376b142..bb27448cacc801390eac7e875c3cf59ff7375622 100644 (file)
@@ -295,10 +295,14 @@ Grob::get_offset (Axis a) const
     dim_cache_[a].offset_ is unaliased.
   */
   Real off = robust_scm2double (internal_get_property (sym), 0.0);
-  *me->dim_cache_[a].offset_ += off;
-
-  me->del_property (sym);
-  return *me->dim_cache_[a].offset_;
+  if (me->dim_cache_[a].offset_)
+    {
+      *me->dim_cache_[a].offset_ += off;
+      me->del_property (sym);
+      return *me->dim_cache_[a].offset_;
+    }
+  else
+    return 0.0;
 }
 
 
index 8ea1500660eb85d383881a9cc10838cd6752adcb..c8ef218d83378bfc99065c193b9408161e66092a 100644 (file)
@@ -267,7 +267,6 @@ New_fingering_engraver::position_scripts (SCM orientations,
       f->set_parent (ft.head_, X_AXIS);
       f->set_parent (ft.head_, Y_AXIS);
 
-
       Self_alignment_interface::set_align_self (f, Y_AXIS);
       Self_alignment_interface::set_center_parent (f, Y_AXIS);
       Side_position_interface::set_axis (f, X_AXIS);
index 1467c963688959dd3afa827745e5b18b47f044e3..5b1eac5970246ba8359fa33581bc4b18444b0693 100644 (file)
@@ -224,7 +224,7 @@ Side_position_interface::get_axis (Grob *me)
   if (scm_is_number (me->get_property ("side-axis")))
     return Axis (scm_to_int (me->get_property ("side-axis")));
   
-  programming_error ("side-axis not set.");
+  me->programming_error ("side-axis not set.");
   return NO_AXES;
 }
 
index 462d63aee1e8eeeab8b080944752ed41525f955f..cd27c28d61381f30c1aa759b2035c6d4ebdb56fe 100644 (file)
@@ -261,6 +261,12 @@ Tuplet_bracket::print (SCM smob)
 
   
   SCM cpoints =  me->get_property ("control-points");
+  if (scm_ilength (cpoints) < 2)
+    {
+      me->suicide ();
+      return SCM_EOL;
+    }
+  
   Drul_array<Offset> points;
   points[LEFT] = ly_scm2offset (scm_car (cpoints));
   points[RIGHT] = ly_scm2offset (scm_cadr (cpoints));
index b4a79cd7f5e3c98bbdcd6fbbe3532326dd1fc0bd..2e10292440fddb46b4d402ded8a0418e63d3c438 100644 (file)
@@ -47,5 +47,6 @@ ADD_INTERFACE (Tuplet_number,
               ,
 
               /* properties */
+              "avoid-slur "    // UGH.
               "bracket ");
 
index a1c3524a7c6d28db4614bb610a55a56b289ef403..0c5ea1c7324b6ff2ac9a3a651d252c6eff20bcd3 100644 (file)
        (font-series . bold)
        (font-encoding . fetaDynamic)
        (font-shape . italic)
+       (avoid-slur . avoid)
        (no-spacing-rods . #t)
        (script-priority . 100)
        (meta . ((class . Item)