In this case, all GL rendering is done in the pixel_getter callback, but this
callback is not called sometimes. So it seems that the viewport is not updated
when PageClientEvasGL::setViewNeedsDisplay is called directly from
WebPageProxy::setViewNeedsDisplay.
This patch allows to call ewk_view_mark_for_sync in PageClientEvasGL::setViewNeedsDisplay.
void PageClientEvasGL::setViewNeedsDisplay(const WebCore::IntRect& rect)
{
#if ENABLE(TIZEN_WEBKIT2_DIRECT_RENDERING)
- if (!isDirectRendering())
+ // setViewNeedsDisplay is called directly from WebPageProxy::setViewNeedsDisplay.
+ // In this case, we need to call ewk_view_mark_for_sync here in order to update the viewport.
+ if (isDirectRendering())
+ ewk_view_mark_for_sync(m_viewImpl->view());
+ else
#endif
drawContents();
m_viewImpl->redrawRegion(rect);