X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Fcontext.cpp;h=4da071e6d0b2ebd7d0eef0919d2c6390002b935c;hb=d43ed398fd84b93b96eb91d91dafdf65c80537e6;hp=38e0f671684321f872798f77cc8c1f1d9872c545;hpb=adfc80c126f482d7ea2bac38001a2c4a7c7df88c;p=synfig.git diff --git a/synfig-core/src/synfig/context.cpp b/synfig-core/src/synfig/context.cpp index 38e0f67..4da071e 100644 --- a/synfig-core/src/synfig/context.cpp +++ b/synfig-core/src/synfig/context.cpp @@ -321,11 +321,13 @@ Context::set_time(Time time)const while(!(context)->empty()) { // If this layer is active, and - // it either isn't already set to the given time or - // it's a time loop layer, + // it either isn't already set to the given time + // or it's a stroboscope layer, + // or it's a time loop layer, // then break out of the loop and set its time if((*context)->active() && (!(*context)->dirty_time_.is_equal(time) || + (*context)->get_name() == "stroboscope" || (*context)->get_name() == "timeloop")) break; @@ -347,13 +349,14 @@ Context::set_time(Time time)const { Layer::ParamList params; Layer::DynamicParamList::const_iterator iter; - + // For each parameter of the layer sets the time by the operator()(time) for(iter=(*context)->dynamic_param_list().begin();iter!=(*context)->dynamic_param_list().end();iter++) params[iter->first]=(*iter->second)(time); - + // Sets the modified parameter list to the current context layer (*context)->set_param_list(params); - + // Calls the set time for the next layer in the context. (*context)->set_time(context+1,time); + // Sets the dirty time the current calling time (*context)->dirty_time_=time; }