try {
m_updateTimer->stop();
+ m_boxBuffer->stopCanvasUpdate();
m_view->hideBox();
m_boxBuffer->free();
+ m_boxBuffer.reset();
} catch (...) {
return false;
}
m_boxInfo->pdWidth,
m_boxInfo->pdHeight);
m_pdBuffer->allocate();
- RenderInfoPtr renderInfo = makeRenderInfo(renderTypeOpenPd);
m_pdBuffer->stopCanvasUpdate();
+ RenderInfoPtr renderInfo = makeRenderInfo(renderTypeOpenPd);
m_view->showPd(m_pdBuffer->getWindow(), renderInfo);
ecore_idler_add(startUpdateRenderBufferIdlerCallback, m_pdBuffer.get());
} catch (...) {
CHECK_BOX_STATE(m_state, permitClosePd);
try {
+ m_pdBuffer->stopCanvasUpdate();
m_view->hidePd();
m_pdBuffer->free();
+ m_pdBuffer.reset();
m_updateTimer->restart();
} catch (...) {
return false;
return true;
}
- m_boxBuffer->startCanvasUpdate();
- RenderInfoPtr renderInfo = makeRenderInfo(renderTypeUpdate);
- m_view->showBox(renderInfo);
+ try {
+ RenderInfoPtr renderInfo = makeRenderInfo(renderTypeUpdate);
+ m_boxBuffer->stopCanvasUpdate();
+ m_view->showBox(renderInfo);
+ ecore_idler_add(startUpdateRenderBufferIdlerCallback, m_boxBuffer.get());
+ } catch (...) {
+ return false;
+ }
return true;
}
m_pdHelper->close();
m_pdHelper.reset();
- // stop box webview after render timer
- addRenderTimer();
+ // stop box webview
+ stopRenderBox();
}
Evas_Object* AppBoxRenderView::getBoxWebView()
}
}
-Eina_Bool AppBoxRenderView::fireRenderTimerCallback(void* data)
+void AppBoxRenderView::stopRenderBox()
{
- LogD("enter");
-
- AppBoxRenderView* This = static_cast<AppBoxRenderView*>(data);
- This->m_fireRenderTimer = NULL;
-
- This->m_renderBuffer->stopCanvasUpdate();
- if (web_provider_livebox_get_mouse_event(This->m_boxId.c_str())) {
+ deleteRenderTimer();
+ m_renderBuffer->stopCanvasUpdate();
+ if (web_provider_livebox_get_mouse_event(m_boxId.c_str())) {
// stop touch timer
- This->m_renderBuffer->deleteTouchTimer();
+ m_renderBuffer->deleteTouchTimer();
// temp condition
- if (This->m_boxWrt_isSuspended == false)
+ if (m_boxWrt_isSuspended == false)
{
- This->m_boxWrt_isSuspended = true;
- This->m_boxWrt->Suspend();
+ m_boxWrt_isSuspended = true;
+ m_boxWrt->Suspend();
}
} else {
// Before webview should be removed,
// new evas object with last render data should be created
// otherwise, after webview is removed, box is white screen.
- evas_object_show(This->getCurrentSnapShot());
- This->destroyBoxWrtCore();
+ evas_object_show(getCurrentSnapShot());
+ destroyBoxWrtCore();
}
+}
+
+Eina_Bool AppBoxRenderView::fireRenderTimerCallback(void* data)
+{
+ LogD("enter");
+
+ AppBoxRenderView* This = static_cast<AppBoxRenderView*>(data);
+ This->m_fireRenderTimer = NULL;
+ This->stopRenderBox();
return ECORE_CALLBACK_CANCEL;
}