#define RENDER_MAX_TIME 30.0
#define SNAPSHOT_REMOVE_TIME 1.0
+#define WEB_DBOX_OBJ_MOVE_TO_OUTSIDE_POINT_VALUE -10000
// injection javascript file regarding creating js object used by box and pd
static const std::string injectionFile("/usr/share/web-provider/injection.js");
, m_boxRenderBuffer()
, m_pdFastOpen(false)
, m_boxFinishLoad(false)
+ , m_boxFrameRendered(false)
, m_boxWrt_isSuspended(false)
{
LogD("enter");
m_boxRenderBuffer->deleteTouchTimer();
}
- // set boxFinishLoad to false
+ // set boxFinishLoad and m_boxFrameRendered to false
m_boxFinishLoad = false;
+ m_boxFrameRendered = false;
// copy to url
std::string boxStartUrl = getStartUrl(URL_TYPE_BOX, boxRenderInfo->defaultUrlParams);
boxRenderInfo->height);
- evas_object_show(boxRenderInfo->window);
+ evas_object_show(m_boxWrt->GetCurrentWebview());
+ // webview window move to outside of viewport because of overlap issue with snapshot image
+ evas_object_move(m_boxWrt->GetCurrentWebview(), WEB_DBOX_OBJ_MOVE_TO_OUTSIDE_POINT_VALUE, WEB_DBOX_OBJ_MOVE_TO_OUTSIDE_POINT_VALUE);
+
m_boxWrt->Show();
m_boxRenderInfo = boxRenderInfo;
}
// show pd window
evas_object_show(pdRenderInfo->window);
+ // need to create new snapshot when m_napshot is empty
+ if (!m_snapshot) {
+ evas_object_show(getCurrentSnapShot());
+ }
+
// show box
showBox(boxRenderInfo);
LogD("enter");
AppBoxRenderView* This = static_cast<AppBoxRenderView*>(data);
- if (!(This->m_boxFinishLoad)) {
+ if (!(This->m_boxFinishLoad && This->m_boxFrameRendered)) {
return ECORE_CALLBACK_RENEW;
}
// hide snapshot because valid frame has been prepared generally.
This->clearSnapShot();
+ // move to inside of viewport to prevent overlap with snapshot image
+ evas_object_move(This->m_boxWrt->GetCurrentWebview(), 0, 0);
+ evas_object_show(This->m_boxWrt->GetCurrentWebview());
+
This->m_removeSnapShotTimer = NULL;
return ECORE_CALLBACK_CANCEL;
}
// start to update render buffer!
AppBoxRenderView* This = static_cast<AppBoxRenderView*>(data);
This->m_boxRenderBuffer->startCanvasUpdate();
+
+ // set flag
+ This->m_boxFrameRendered = true;
+
+ // move to inside of viewport to prevent overlap with snapshot image
+ if (!This->m_removeSnapShotTimer) {
+ evas_object_move(This->m_boxWrt->GetCurrentWebview(), 0, 0);
+ }
+
}