**
** \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
return false;
}
- if (blend_method_ == Color::BLEND_STRAIGHT)
+ if (blend_method_ == Color::BLEND_STRAIGHT && !reads_context())
{
Canvas::Handle canvas(get_canvas());
if (canvas)
String version(canvas->get_version());
if (version == "0.1" || version == "0.2")
+ {
if (get_name() == "PasteCanvas")
warning("loaded a version %s canvas with a 'Straight' blended PasteCanvas (%s) - check it renders OK",
version.c_str(), get_non_empty_description().c_str());
else
+ {
blend_method_ = Color::BLEND_COMPOSITE;
+ converted_blend_ = true;
+
+ // if this layer has a transparent color, go back and set the color again
+ // now that we know we are converting the blend method as well. that will
+ // make the color non-transparent, and change the blend method to alpha over
+ if (transparent_color_)
+ set_param("color", get_param("color"));
+ }
+ }
}
}
}