and NOW fix obscure object handling properly.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 Oct 2011 10:25:35 +0000 (10:25 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 Oct 2011 10:25:35 +0000 (10:25 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@64252 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_render.c

index ab39b37..037f1d6 100644 (file)
@@ -152,6 +152,7 @@ _evas_render_phase1_direct(Evas *e,
    Eina_List *l;
    Evas_Object *proxy;
 
+//   printf("--------------------\n");
    RD("  [--- PHASE 1 DIRECT\n");
    for (i = 0; i < active_objects->count; i++)
      {
@@ -174,6 +175,7 @@ _evas_render_phase1_direct(Evas *e,
         Evas_Object *obj;
 
         obj = eina_array_data_get(render_objects, i);
+//        printf("R: %p %s - %i %i %ix%i D:%i\n", obj, obj->type, obj->cur.geometry.x, obj->cur.geometry.y, obj->cur.geometry.w, obj->cur.geometry.h, obj->rect_del);
         RD("    OBJ [%p] changed %i\n", obj, obj->changed);
         if (obj->changed)
           {
@@ -221,7 +223,8 @@ _evas_render_phase1_direct(Evas *e,
                {
                   //                  obj->func->render_pre(obj);
                }
-             else if (obj->rect_del)
+             else if ((obj->rect_del) ||
+                      (evas_object_is_opaque(obj) && evas_object_is_visible(obj)))
                {
                   RD("    rect del\n");
                   _evas_render_cur_clip_cache_del(e, obj);
@@ -1295,7 +1298,7 @@ evas_render_updates_internal(Evas *e,
      _evas_render_check_pending_objects(&e->pending_objects, e);
 
    /* phase 1. add extra updates for changed objects */
-/*   if (e->invalidate || e->render_objects.count <= 0)*/
+   if (e->invalidate || e->render_objects.count <= 0)
      clean_them = _evas_render_phase1_process(e,
                                               &e->active_objects,
                                               &e->restack_objects,