ecore-evas-wayland: Fix ecore_evas async rendering with wayland engines
authorChris Michael <cp.michael@samsung.com>
Fri, 22 Aug 2014 17:31:09 +0000 (13:31 -0400)
committerChris Michael <cp.michael@samsung.com>
Fri, 22 Aug 2014 17:32:38 +0000 (13:32 -0400)
Recent expedite changes have uncovered an issue where the ecore_evas
(under wayland) was not supporting async rendering correctly. This
fixes the issue so we can run expedite with -y and get redraws again.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c

index 532e900b36fecd675130fe007bcfe41025b95cb1..0c0ce81627c10ae4e1b0544cdb172aed70e8834d 100644 (file)
@@ -1458,10 +1458,14 @@ _ecore_evas_wl_common_render(Ecore_Evas *ee)
 
    if (!ee->can_async_render)
      {
+        Eina_List *updates;
+
+        updates = evas_render_updates(ee->evas);
+        rend = _ecore_evas_wl_common_render_updates_process(ee, updates);
+        evas_render_updates_free(updates);
+
         if (!wdata->frame_pending)
           {
-             Eina_List *updates;
-
              if (!wdata->frame_callback)
                {
                   wdata->frame_callback = 
@@ -1470,10 +1474,6 @@ _ecore_evas_wl_common_render(Ecore_Evas *ee)
                                            &frame_listener, ee);
                }
 
-             updates = evas_render_updates(ee->evas);
-             rend = _ecore_evas_wl_common_render_updates_process(ee, updates);
-             evas_render_updates_free(updates);
-
              if (rend) 
                wdata->frame_pending = EINA_TRUE;
           }
@@ -1483,6 +1483,8 @@ _ecore_evas_wl_common_render(Ecore_Evas *ee)
         ee->in_async_render = EINA_TRUE;
         rend = 1;
      }
+   else if (ee->func.fn_post_render)
+     ee->func.fn_post_render(ee);
 
    return rend;
 }