]> git.donarmstrong.com Git - lilypond.git/commitdiff
(get_configuration): only shift tie by a whole staff
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 13 Nov 2005 01:04:24 +0000 (01:04 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 13 Nov 2005 01:04:24 +0000 (01:04 +0000)
space inside the staff.

lily/tie.cc

index c22cb49c194421e1cea435c93da47fe0f63d4358..7588cc33ed61823e073b876105c186ad058111d8 100644 (file)
@@ -357,14 +357,23 @@ Tie::get_configuration (Grob *me_grob, Grob *common,
   if (!in_between
       && in_space
       && abs (conf->position_ - conf->head_position_) <= 1)
-    conf->position_ += 2*conf->dir_;
-  
+    {
+      int amount = conf->dir_;
+      if (sign (conf->position_) != conf->dir_
+         || conf->position_ < Staff_symbol_referencer::staff_radius (me) * 2)
+       amount *= 2;
+
+      conf->position_ += amount;
+    }
   
   if (in_space)
     {
-      if ((abs (conf->position_ - conf->head_position_) <= 1
-          && fabs (dy) < 0.45 * staff_space)
-         || fabs (dy) < 0.6 * staff_space)
+      if ((sign (conf->position_) != conf->dir_
+          || conf->position_ < Staff_symbol_referencer::staff_radius (me) * 2)
+         &&
+         ((abs (conf->position_ - conf->head_position_) <= 1
+           && fabs (dy) < 0.45 * staff_space)
+          || fabs (dy) < 0.6 * staff_space))
        {
          /*
            vertically center in space.