X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftuplet-iterator.cc;h=80a75a9beb7ad2d8c64f14c66d12158b7e3e0089;hb=6eb491aaf0f99f3cfac553d8632259df9caadfac;hp=e04a0e9de8ee57932af9a3587acdc32043e0a865;hpb=9066eeede909ace56324c905217c5b585ba42f90;p=lilypond.git diff --git a/lily/tuplet-iterator.cc b/lily/tuplet-iterator.cc index e04a0e9de8..80a75a9beb 100644 --- a/lily/tuplet-iterator.cc +++ b/lily/tuplet-iterator.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2014 Han-Wen Nienhuys , + Copyright (C) 1998--2015 Han-Wen Nienhuys , Erik Sandberg LilyPond is free software: you can redistribute it and/or modify @@ -109,6 +109,8 @@ Tuplet_iterator::process (Moment m) if (m.main_part_ < music_get_length ().main_part_) { + spanner_duration_ = + min (music_get_length () - next_split_mom_, spanner_duration_); tuplet_handler_.set_context (get_outlet ()); report_event (create_event (START)); @@ -128,15 +130,11 @@ Tuplet_iterator::construct_children () { if (Duration *d = Duration::unsmob (get_music ()->get_property ("duration"))) spanner_duration_ = d->get_length (); + else if (Moment *mp + = Moment::unsmob (get_outlet ()->get_property ("tupletSpannerDuration"))) + spanner_duration_ = mp->main_part_; else - { - spanner_duration_ = music_get_length (); - - Moment *mp - = Moment::unsmob (get_outlet ()->get_property ("tupletSpannerDuration")); - if (mp) - spanner_duration_ = min (mp->main_part_, spanner_duration_); - } + spanner_duration_.set_infinite (1); Music_wrapper_iterator::construct_children ();