bug fix : appeared crash screen when ecore_evas_manual_render is called in the ecore_evas
authorDae young Ryu <karzia@samsung.com>
Thu, 20 Jun 2013 06:32:01 +0000 (15:32 +0900)
committerDae young Ryu <karzia@samsung.com>
Thu, 20 Jun 2013 06:38:24 +0000 (15:38 +0900)
Change-Id: Iea6f8b02b9dc333074c38ef0ac82e15816eb66f9
Signed-off-by: Dae young Ryu <karzia@samsung.com>
src/ui/animations/FUiAnim_EflLayer.cpp

index 4b1f17a..75aa87a 100644 (file)
@@ -61,7 +61,7 @@ Ecore_Idle_Enterer* __pOnIdleLoopIterator = null;
 
 
 //static const double fpsLimitInterval = 1.0 / 55.0;
-
+static bool __needPreRender = false;
 Eina_Bool
 OnIdleLoopIterate(void* pData)
 {
@@ -220,6 +220,9 @@ OnXWindowShown(void* pData, int type, void* pEventInfo)
 void
 PreRenderCallback(Ecore_Evas* ee)
 {
+       if(!__needPreRender)
+               return ;
+
        _EflLayer* pEflLayer = (_EflLayer*)ecore_evas_data_get(ee, "EflLayer");
 
        if (pEflLayer && pEflLayer->GetRootVisualElement())
@@ -448,8 +451,9 @@ _EflLayer::Initialize(Evas_Object* pWindow)
        {
                __pOnIdleLoopIterator = ecore_idle_enterer_add(OnIdleLoopIterate, null);
        }
-#else
        ecore_evas_callback_pre_render_set(_pEcoreEvas, PreRenderCallback);
+#else
+
        ecore_evas_callback_post_render_set(_pEcoreEvas, PostRenderCallback);
 #endif
 
@@ -669,7 +673,9 @@ _EflLayer::Flush(void)
 
                PRINT("ecore_evas_manual_render bounds(%f %f %f %f)\n", rect.x, rect.y, rect.width, rect.height);
 
+               __needPreRender = false;
                ecore_evas_manual_render(_pEcoreEvas);
+               __needPreRender = true;
        }
 
 #if 0