From 85b6a5dc062fcd3d3182fbcbebd167898f84e431 Mon Sep 17 00:00:00 2001 From: Yunchan Cho Date: Sat, 22 Jun 2013 12:45:17 +0900 Subject: [PATCH] Disable shadow effect on webview scrolling [Issue#] DCM-2010 [Problem] shadow effect on webview is display as default by webkit [Cause] Recently, webkit has applied shadow effect to every webview as default [Solution] For this, webkit provides new API to disable shadow effect. AppBox plugin lets shadow effect be diabled using the following webkit API as default EAPI Eina_Bool ewk_settings_edge_effect_enabled_set(Ewk_Settings* settings, Eina_Bool enable) Change-Id: Iea8a1dc8985b598025d494580744b161ed031f55 --- src/Plugin/AppBoxPlugin/AppBoxRenderView.cpp | 29 ++++++++++++++++++---------- src/Plugin/AppBoxPlugin/AppBoxRenderView.h | 1 + 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/Plugin/AppBoxPlugin/AppBoxRenderView.cpp b/src/Plugin/AppBoxPlugin/AppBoxRenderView.cpp index 4069f0a..4fb908a 100644 --- a/src/Plugin/AppBoxPlugin/AppBoxRenderView.cpp +++ b/src/Plugin/AppBoxPlugin/AppBoxRenderView.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -166,10 +167,8 @@ AppBoxRenderView::WrtCorePtr AppBoxRenderView::createWrtCore( cbs->webCrash = DPL::MakeDelegate(this, &AppBoxRenderView::crashWebProcessCallback); wrt->SetUserDelegates(cbs); - // To support transparent background - evas_object_color_set(wrt->GetCurrentWebview(), 0, 0, 0, 0); - //evas_object_layer_set(wrt->GetCurrentWebview(), EVAS_LAYER_MAX); - + // set basic webview setting + setWebViewBasicSetting(wrt->GetCurrentWebview()); // To know starting point for updating buffer evas_object_smart_callback_add( wrt->GetCurrentWebview(), @@ -342,7 +341,6 @@ Evas_Object* AppBoxRenderView::getCurrentSnapShot() LogD("enter"); clearSnapShot(); m_snapshot = m_renderBuffer->getSnapshot(); - //evas_object_layer_set(m_snapshot, EVAS_LAYER_MAX); return m_snapshot; } @@ -351,7 +349,6 @@ void AppBoxRenderView::clearSnapShot() { LogD("enter"); if (m_snapshot) { - //evas_object_layer_set(m_snapshot, EVAS_LAYER_MIN); evas_object_del(m_snapshot); m_snapshot = NULL; } @@ -402,6 +399,21 @@ void AppBoxRenderView::stopRenderBox() } } +void AppBoxRenderView::setWebViewBasicSetting(Evas_Object* webview) +{ + LogD("enter"); + + if (!webview) { + return; + } + Ewk_Settings* setting = ewk_view_settings_get(webview); + // disable shadow effect on scrolling + ewk_settings_edge_effect_enabled_set(setting, EINA_FALSE); + // To support transparent background + evas_object_color_set(webview, 0, 0, 0, 0); + ewk_view_visibility_set(webview, EINA_TRUE); +} + Eina_Bool AppBoxRenderView::fireRenderTimerCallback(void* data) { LogD("enter"); @@ -485,9 +497,6 @@ void AppBoxRenderView::createWindowAfterCallback(Evas_Object* parent, Evas_Objec { LogD("enter"); - // To support transparent background - evas_object_color_set(child, 0, 0, 0, 0); - if (m_pdHelper) { Evas* parentCanvas = evas_object_evas_get(parent); Evas* childCanvas = evas_object_evas_get(child); @@ -501,7 +510,7 @@ void AppBoxRenderView::createWindowAfterCallback(Evas_Object* parent, Evas_Objec } } - ewk_view_visibility_set(child, EINA_TRUE); + setWebViewBasicSetting(child); evas_object_show(child); } diff --git a/src/Plugin/AppBoxPlugin/AppBoxRenderView.h b/src/Plugin/AppBoxPlugin/AppBoxRenderView.h index 2194d98..8a36821 100644 --- a/src/Plugin/AppBoxPlugin/AppBoxRenderView.h +++ b/src/Plugin/AppBoxPlugin/AppBoxRenderView.h @@ -64,6 +64,7 @@ class AppBoxRenderView: public IRenderView { WrtCorePtr createWrtCore( std::string& startUrl, Evas_Object* win, EwkContextPtr ewkContext); + void setWebViewBasicSetting(Evas_Object* webview); void destroyWrtCore(WrtCorePtr wrt); void destroyBoxWrtCore(); void destroyPdWrtCore(); -- 2.7.4