[Title] Resize WebPage's viewport size ealier
[Issue#] DCM-1848
[Problem] Sometimes JS window.innerWidth returns 0 on launching time
[Cause] WebPage's viewport size is fixed too late. It was resized on
_ewk_view_smart_calculate() not on _ewk_view_smart_resize(). There's
time delay between _ewk_view_smart_resize() and _ewk_view_smart_calculate().
[Solution] Resize viewport size right after _ewk_view_smart_resize() is called
Change-Id: Ic353972ea8ca391b2aface1d028f2984cb00ee1c
#endif
// update viewport size of webkit
#endif
// update viewport size of webkit
- m_visibleContentRect.setSize(viewportSize);
- m_visibleContentRect = adjustVisibleContentRect(m_visibleContentRect, m_scaleFactor);
- m_viewImpl->setScrollPosition(m_visibleContentRect.location());
m_viewImpl->page()->setViewportSize(viewportSize);
}
m_viewImpl->page()->setViewportSize(viewportSize);
}
+
+void PageClientImpl::updateVisibleContentRectSize(const IntSize& size)
+{
+ // update visible content rect's size
+ m_visibleContentRect.setSize(size);
+}
#endif
void PageClientImpl::prepareRestoredVisibleContectRect()
#endif
void PageClientImpl::prepareRestoredVisibleContectRect()
void PageClientEvasGL::updateViewportSize(const WebCore::IntSize& viewportSize, const int angle)
{
void PageClientEvasGL::updateViewportSize(const WebCore::IntSize& viewportSize, const int angle)
{
+ PageClientImpl::updateViewportSize(viewportSize, angle);
+}
+
+void PageClientEvasGL::updateVisibleContentRectSize(const WebCore::IntSize& size)
+{
if (m_surface) {
evas_gl_surface_destroy(m_evasGL, m_surface);
m_surface = 0;
}
setTargetSurface();
if (m_surface) {
evas_gl_surface_destroy(m_evasGL, m_surface);
m_surface = 0;
}
setTargetSurface();
- PageClientImpl::updateViewportSize(viewportSize, angle);
+ PageClientImpl::updateVisibleContentRectSize(size);
}
void PageClientEvasGL::setViewNeedsDisplay(const WebCore::IntRect& rect)
}
void PageClientEvasGL::setViewNeedsDisplay(const WebCore::IntRect& rect)
double adjustScaleWithViewport(double);
#if USE(TILED_BACKING_STORE) && ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
TIZEN_VIRTUAL void updateViewportSize(const WebCore::IntSize&, const int);
double adjustScaleWithViewport(double);
#if USE(TILED_BACKING_STORE) && ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE)
TIZEN_VIRTUAL void updateViewportSize(const WebCore::IntSize&, const int);
+ TIZEN_VIRTUAL void updateVisibleContentRectSize(const WebCore::IntSize&);
#endif
void prepareRestoredVisibleContectRect();
void initializeVisibleContentRect();
#endif
void prepareRestoredVisibleContectRect();
void initializeVisibleContentRect();
~PageClientEvasGL();
virtual void updateViewportSize(const WebCore::IntSize&, const int);
~PageClientEvasGL();
virtual void updateViewportSize(const WebCore::IntSize&, const int);
+ virtual void updateVisibleContentRectSize(const WebCore::IntSize&);
virtual void setViewNeedsDisplay(const WebCore::IntRect&);
virtual void displayViewport();
virtual void drawContents();
virtual void setViewNeedsDisplay(const WebCore::IntRect&);
virtual void displayViewport();
virtual void drawContents();
#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
evas_object_image_native_surface_set(smartData->image, 0);
#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
evas_object_image_native_surface_set(smartData->image, 0);
+ Ecore_Evas* ee = ecore_evas_ecore_evas_get(smartData->base.evas);
+ impl->pageClient->updateViewportSize(IntSize(width, height), ecore_evas_rotation_get(ee));
#if ENABLE(TIZEN_RUNTIME_BACKEND_SELECTION)
if (!ewk_view_is_opengl_backend(ewkView))
_ewk_view_composite(smartData);
#if ENABLE(TIZEN_RUNTIME_BACKEND_SELECTION)
if (!ewk_view_is_opengl_backend(ewkView))
_ewk_view_composite(smartData);
#endif
#if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE) && !ENABLE(TIZEN_WEBKIT2_EFL_WTR)
Ecore_Evas* ee = ecore_evas_ecore_evas_get(smartData->base.evas);
#endif
#if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE) && !ENABLE(TIZEN_WEBKIT2_EFL_WTR)
Ecore_Evas* ee = ecore_evas_ecore_evas_get(smartData->base.evas);
- impl->pageClient->updateViewportSize(IntSize(width, height), ecore_evas_rotation_get(ee));
+ impl->pageClient->updateVisibleContentRectSize(IntSize(width, height));
if (ewk_view_is_opengl_backend(ewkView))
impl->pageClient->displayViewport();
#endif
if (ewk_view_is_opengl_backend(ewkView))
impl->pageClient->displayViewport();
#endif