fix minor bug in fill mode.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 15 Feb 2009 02:53:24 +0000 (02:53 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 15 Feb 2009 02:53:24 +0000 (02:53 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@39020 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_object_image.c

index 19c6216..5ee8a96 100644 (file)
@@ -2251,13 +2251,18 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
                            inw = imw - bl - br; inh = imh - bt - bb;
                            outx = ox + bl; outy = oy + bt;
                            outw = iw - bl - br; outh = ih - bt - bb;
-                            if (o->cur.border.fill == EVAS_BORDER_FILL_SOLID)
-                              obj->layer->evas->engine.func->context_render_op_set(output, context,
-                                                                                   EVAS_RENDER_COPY);
-                           obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale);
-                            if (o->cur.border.fill == EVAS_BORDER_FILL_SOLID)
-                              obj->layer->evas->engine.func->context_render_op_set(output, context,
-                                                                                   obj->cur.render_op);
+                            if ((o->cur.border.fill == EVAS_BORDER_FILL_SOLID) &&
+                                (obj->cur.cache.clip.a == 255) &&
+                                (obj->cur.render_op == EVAS_RENDER_BLEND))
+                              {
+                                 obj->layer->evas->engine.func->context_render_op_set(output, context,
+                                                                                      EVAS_RENDER_COPY);
+                                 obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale);
+                                 obj->layer->evas->engine.func->context_render_op_set(output, context,
+                                                                                      obj->cur.render_op);
+                              }
+                            else
+                              obj->layer->evas->engine.func->image_draw(output, context, surface, o->engine_data, inx, iny, inw, inh, outx, outy, outw, outh, o->cur.smooth_scale);
                         }
                       inx = imw - br; iny = bt;
                       inw = br; inh = imh - bt - bb;