]> git.donarmstrong.com Git - lilypond.git/commitdiff
(get_configuration): also avoid dots for non-space
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 7 Sep 2005 23:28:34 +0000 (23:28 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 7 Sep 2005 23:28:34 +0000 (23:28 +0000)
situations.

ChangeLog
lily/tie.cc

index 5500f1c87e7cc021d33b2fc5fb0fdf6bc097c017..2694dc1c198ac66b516630e2b3175ecbafad9f0f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-08  Han-Wen Nienhuys  <hanwen@xs4all.nl>
+
+       * lily/tie.cc (get_configuration): also avoid dots for non-space
+       situations.
+
 2005-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>
 
        * Documentation/user/instrument-notation.itely: Bugfix.
index 8a105688be9988dfddcca92312b4bf978d300b63..6e62f424f0111ca404a9462ce87e58730e366070 100644 (file)
@@ -261,29 +261,30 @@ Tie::get_configuration (Grob *me_grob, Grob *common,
     Avoid dot
    */
   Grob *left_dot = unsmob_grob (me->get_bound (LEFT)->get_object ("dot"));
-  if (left_dot && in_space)
+  int dot_pos = int (Staff_symbol_referencer::get_position (left_dot));
+  if (left_dot
+      && (staff_position == dot_pos
+         || staff_position + dir == dot_pos))
     {
-      if (staff_position == Staff_symbol_referencer::get_position (left_dot))
-       {
-         staff_position += dir;
-         in_space = false;
+      staff_position += dir;
+      in_space = !in_space;
 
-         if (skylines)
-           {
-             Real y = staff_space * 0.5 * staff_position;
-             attachments = get_skyline_attachment (*skylines, y);
-             attachments.widen (-gap);
-             Bezier b = slur_shape (attachments.length(),
-                                    details.height_limit_,
-                                    details.ratio_);
-             Offset middle = b.curve_point (0.5);
-             Offset edge = b.curve_point (0.0);
-             dy = fabs (middle[Y_AXIS] - edge[Y_AXIS]);
-             fits_in_space =
-               (dy < 0.6 * staff_space);
-           }
+      if (skylines)
+       {
+         Real y = staff_space * 0.5 * staff_position;
+         attachments = get_skyline_attachment (*skylines, y);
+         attachments.widen (-gap);
+         Bezier b = slur_shape (attachments.length(),
+                                details.height_limit_,
+                                details.ratio_);
+         Offset middle = b.curve_point (0.5);
+         Offset edge = b.curve_point (0.0);
+         dy = fabs (middle[Y_AXIS] - edge[Y_AXIS]);
+         fits_in_space =
+           (dy < 0.6 * staff_space);
        }
     }
+  
   /*
     Avoid flag.
   */