X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcontext.cpp;h=38e0f671684321f872798f77cc8c1f1d9872c545;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=144eba70d98c6c108e99fd4b39e6b2c67174dadb;hpb=4418e68821c7c860fb25a914aa103d800513ea7d;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/context.cpp b/synfig-core/trunk/src/synfig/context.cpp index 144eba7..38e0f67 100644 --- a/synfig-core/trunk/src/synfig/context.cpp +++ b/synfig-core/trunk/src/synfig/context.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -264,7 +265,7 @@ Context::accelerated_render(Surface *surface,int quality, const RendDesc &rendde // using the appropriate 'amount' if (straight_and_empty) { - if (ret = Context((context+1)).accelerated_render(surface,quality,renddesc,cb)) + if ((ret = Context((context+1)).accelerated_render(surface,quality,renddesc,cb))) { Surface clearsurface; clearsurface.set_wh(renddesc.get_w(),renddesc.get_h()); @@ -319,9 +320,13 @@ Context::set_time(Time time)const Context context(*this); while(!(context)->empty()) { - // If this layer is active, then go - // ahead and break out of the loop - if((*context)->active() && !(*context)->dirty_time_.is_equal(time)) + // If this layer is active, and + // it either isn't already set to the given time 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() == "timeloop")) break; // Otherwise, we want to keep searching