Fix 2119764 "eyedropper doesn't work with straight blends" for rectangles.
authordooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Sat, 20 Sep 2008 15:46:33 +0000 (15:46 +0000)
committerdooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Sat, 20 Sep 2008 15:46:33 +0000 (15:46 +0000)
git-svn-id: https://synfig.svn.sourceforge.net/svnroot/synfig@2063 1f10aa63-cdf2-0310-b900-c93c546f37ac

synfig-core/trunk/src/modules/mod_geometry/rectangle.cpp

index 21fa4d2..374af9c 100644 (file)
@@ -274,27 +274,26 @@ Rectangle::get_color(Context context, const Point &pos)const
        if(     pos[0]<max[0] && pos[0]>min[0] &&
                pos[1]<max[1] && pos[1]>min[1] )
        {
+               // inside the expanded rectangle
                if(invert)
-                       return context.get_color(pos);
-               else
-               {
-                       if(is_solid_color())
-                               return color;
-                       else
-                               return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method());
+                       return Color::blend(Color::alpha(),context.get_color(pos),get_amount(),get_blend_method());
 
-               }
-       }
+               if(is_solid_color())
+                       return color;
 
-       if(invert)
+               return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method());
+       }
+       else
        {
+               // outside the expanded rectangle
+               if(!invert)
+                       return Color::blend(Color::alpha(),context.get_color(pos),get_amount(),get_blend_method());
+
                if(is_solid_color())
                        return color;
-               else
-                       return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method());
-       }
 
-       return context.get_color(pos);
+               return Color::blend(color,context.get_color(pos),get_amount(),get_blend_method());
+       }
 }
 
 bool