{
LogD("enter");
+ // stop updating render buffer
+ m_renderBuffer->stopCanvasUpdate();
+ clearSnapShot();
+
// delete already running timer
deleteRenderTimer();
std::string boxStartUrl = getStartUrl(URL_TYPE_BOX, renderInfo->defaultUrlParams);
if (m_boxWrt) {
LogD("existing wrt core is removed");
- destroyWrtCore(m_boxWrt);
+ destroyBoxWrtCore();
}
m_boxWrt = createWrtCore(boxStartUrl, m_boxWin, m_ewkContext);
// To support transparent background
evas_object_color_set(wrt->GetCurrentWebview(), 0, 0, 0, 0);
- evas_object_layer_set(wrt->GetCurrentWebview(), EVAS_LAYER_MAX);
+ //evas_object_layer_set(wrt->GetCurrentWebview(), EVAS_LAYER_MAX);
+
+ // To know starting point for updating buffer
+ evas_object_smart_callback_add(
+ wrt->GetCurrentWebview(),
+ "load,nonemptylayout,finished",
+ //"frame,rendered",
+ loadNonEmptyLayoutFinishedCallback,
+ this);
return wrt;
}
{
LogD("enter");
if (m_snapshot) {
- evas_object_layer_set(m_snapshot, EVAS_LAYER_MIN);
- //evas_object_hide(m_snapshot);
+ //evas_object_layer_set(m_snapshot, EVAS_LAYER_MIN);
evas_object_del(m_snapshot);
m_snapshot = NULL;
}
void AppBoxRenderView::startLoadCallback(Evas_Object* webview)
{
LogD("enter");
- m_renderBuffer->startCanvasUpdate();
// execute injection for creating js objects
std::ifstream jsFile(injectionFile);
std::string script((std::istreambuf_iterator<char>(jsFile)),
ewk_shutdown();
elm_exit();
}
+
+void AppBoxRenderView::loadNonEmptyLayoutFinishedCallback(
+ void* data, Evas_Object* webview, void* eventInfo)
+{
+ LogD("enter");
+
+ // start to update render buffer!
+ AppBoxRenderView* This = static_cast<AppBoxRenderView*>(data);
+ This->m_renderBuffer->startCanvasUpdate();
+}
// ewk view callback
static void executeScriptCallback(
Evas_Object* webview, const char* result, void* data);
+ static void loadNonEmptyLayoutFinishedCallback(
+ void* data, Evas_Object* webview, void* eventInfo);
// user Callbacks of RunnableWidgetObject
void startLoadCallback(Evas_Object* webview);