|
@@ -549,9 +549,12 @@ void PropertyTweener::start() {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (do_continue && Math::is_zero_approx(delay)) {
|
|
|
- initial_val = target_instance->get_indexed(property);
|
|
|
- do_continue = false;
|
|
|
+ if (do_continue) {
|
|
|
+ if (Math::is_zero_approx(delay)) {
|
|
|
+ initial_val = target_instance->get_indexed(property);
|
|
|
+ } else {
|
|
|
+ do_continue_delayed = true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (relative) {
|
|
@@ -576,10 +579,10 @@ bool PropertyTweener::step(double &r_delta) {
|
|
|
if (elapsed_time < delay) {
|
|
|
r_delta = 0;
|
|
|
return true;
|
|
|
- } else if (do_continue && !Math::is_zero_approx(delay)) {
|
|
|
+ } else if (do_continue_delayed && !Math::is_zero_approx(delay)) {
|
|
|
initial_val = target_instance->get_indexed(property);
|
|
|
delta_val = Animation::subtract_variant(final_val, initial_val);
|
|
|
- do_continue = false;
|
|
|
+ do_continue_delayed = false;
|
|
|
}
|
|
|
|
|
|
double time = MIN(elapsed_time - delay, duration);
|