X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcanvas.cpp;h=255498153a9b51342fb2a3c916d50995bef8e5ca;hb=312e59b1685ed1acc688035b62700ca413294c2f;hp=739cf7ee55325c164460c60908cee7d74cb4764e;hpb=0a7bcee76abd2190abf30196d21641b2d799e2fc;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/canvas.cpp b/synfig-core/trunk/src/synfig/canvas.cpp index 739cf7e..2554981 100644 --- a/synfig-core/trunk/src/synfig/canvas.cpp +++ b/synfig-core/trunk/src/synfig/canvas.cpp @@ -1018,10 +1018,10 @@ synfig::optimize_layers(Context context, Canvas::Handle op_canvas, bool seen_mot Context iter; std::vector< std::pair > sort_list; - int i, motion_blur_i; // motion_blur_i is for resolving which layer comes first in the event of a z_depth tie - float motion_blur_z_depth; // the z_depth of the least deep motion blur layer in this context + int i, motion_blur_i=0; // motion_blur_i is for resolving which layer comes first in the event of a z_depth tie + float motion_blur_z_depth=0; // the z_depth of the least deep motion blur layer in this context bool seen_motion_blur_locally = false; - bool motion_blurred; // the final result - is this layer blurred or not? + bool motion_blurred; // the final result - is this layer blurred or not? // If the parent didn't cause us to already be motion blurred, // check whether there's a motion blur in this context, @@ -1080,7 +1080,10 @@ synfig::optimize_layers(Context context, Canvas::Handle op_canvas, bool seen_mot continue; Layer_PasteCanvas* paste_canvas(static_cast(layer.get())); - if(layer->get_name()=="PasteCanvas" && paste_canvas->get_time_offset()==0) + + // note: this used to include "&& paste_canvas->get_time_offset()==0", but then + // time-shifted layers weren't being sorted by z-depth (bug #1806852) + if(layer->get_name()=="PasteCanvas") { // we need to blur the sub canvas if: // our parent is blurred,