Multiplying a gradient by zero empties it.
[synfig.git] / synfig-core / trunk / src / synfig / gradient.cpp
index 2411006..29f3055 100644 (file)
@@ -210,8 +210,11 @@ synfig::Gradient::operator-=(const Gradient &rhs)
 Gradient &
 synfig::Gradient::operator*=(const float    &rhs)
 {
-       for (iterator iter = cpoints.begin(); iter!=cpoints.end(); iter++)
-               (*iter).color *= rhs;
+       if (rhs == 0)
+               cpoints.clear();
+       else
+               for (iterator iter = cpoints.begin(); iter!=cpoints.end(); iter++)
+                       (*iter).color *= rhs;
        return *this;
 }