X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcanvas.cpp;h=1d54730ef10acf5c93cdd545e3d29afa9777494c;hb=bd8367952ea2be0ab1e94922922409bf5f9a0be8;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..1d54730 100644 --- a/synfig-core/trunk/src/synfig/canvas.cpp +++ b/synfig-core/trunk/src/synfig/canvas.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 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 @@ -1018,10 +1019,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 +1081,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,