refactoring text selection module
authorSeongjun Yim <se201.yim@samsung.com>
Sat, 30 Mar 2013 08:18:53 +0000 (17:18 +0900)
committerSeongjun Yim <se201.yim@samsung.com>
Sat, 30 Mar 2013 08:23:50 +0000 (17:23 +0900)
Change-Id: I139db930f48f3458ed1d621290c3ab79e5c61c10
Signed-off-by: Seongjun Yim <se201.yim@samsung.com>
src/controls/FWebCtrl_Web.cpp
src/controls/FWebCtrl_Web.h
src/controls/FWebCtrl_WebImpl.cpp
src/controls/FWebCtrl_WebImpl.h

index e946f6a..f745983 100755 (executable)
@@ -122,6 +122,7 @@ _Web::_Web(void)
        : __gestureType(WEB_GESTURE_TYPE_TAP)
        , __pGestureHandler(null)
        , __pEflWebkit(null)
+       , __pWebSetting(null)
        , __pGestureFlick(null)
        , __pGestureLongPress(null)
        , __pGesturePinch(null)
@@ -150,6 +151,9 @@ _Web::CreateWebN(void)
        std::unique_ptr<_Web> pWeb(new (std::nothrow) _Web());
        SysTryReturn(NID_WEB_CTRL, pWeb.get(), null, E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
 
+       pWeb->__pWebSetting = std::unique_ptr<WebSetting>(new (std::nothrow) WebSetting());
+       SysTryReturn(NID_WEB_CTRL, pWeb->__pWebSetting.get(), null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
+
        pWeb->AcquireHandle();
        pWeb->SetMultiTouchEnabled(true);
        pWeb->SetTouchPressThreshold(0.08);
@@ -345,17 +349,10 @@ _Web::GetWebNativeNode(void)
 }
 
 
-void 
-_Web::SetWebSettingImpl(_WebSettingImpl* pWebSettingImpl)
-{
-       __pWebSettingImpl = pWebSettingImpl;
-}
-
-
-_WebSettingImpl* 
-_Web::GetWebSettingImpl(void) const
+WebSetting*
+_Web::GetSetting(void) const
 {
-       return __pWebSettingImpl;
+       return __pWebSetting.get();
 }
 
 
@@ -438,7 +435,7 @@ _Web::OnTouchPressed(const _Control& source, const _TouchInfo& touchInfo)
 bool
 _Web::OnTouchMoved(const _Control& source, const _TouchInfo& touchInfo)
 {
-       if (__pEflWebkit.get() && __pWebSettingImpl->IsScrollEnabled())
+       if (__pEflWebkit.get() && _WebSettingImpl::GetInstance(__pWebSetting.get())->IsScrollEnabled())
        {
                SendTouchEventForJavaScript(touchInfo);
 
@@ -457,13 +454,6 @@ _Web::OnTouchReleased(const _Control& source, const _TouchInfo& touchInfo)
                SendTouchEventForJavaScript(touchInfo);
 
                return __pGestureHandler->OnTouchReleased(source, touchInfo);
-
-               _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(GetWebNativeNode(), WEB_CTRL));
-
-               if (pWebImpl->GetLoadingListener() && pWebImpl->GetTextFromBlock().GetLength() > 0)
-               {
-                       pWebImpl->FireWebPageBlockSelectedEvent();
-               }
        }
 
        SetFocused();
@@ -551,7 +541,7 @@ _Web::OnTapGestureCanceled(_TouchTapGestureDetector& gesture)
 bool
 _Web::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
 {
-       if (__pEflWebkit.get() && __pWebSettingImpl->IsScrollEnabled())
+       if (__pEflWebkit.get() && _WebSettingImpl::GetInstance(__pWebSetting.get())->IsScrollEnabled())
        {
                return __pFlickGestureHandler->OnFlickGestureDetected(gesture);
        }
index c6c5885..db2f32e 100755 (executable)
@@ -59,6 +59,7 @@ class _TapGestureState;
 class _PanningGestureState;
 class _FlickGestureState;
 class _PinchGestureState;
+class WebSetting;
 
 enum _WebGestureType
 {
@@ -98,8 +99,7 @@ public:
        Tizen::Graphics::Point GetRelativeCoordinate(Tizen::Graphics::Point absolutePoint);
        Tizen::Graphics::FloatPoint GetRelativeCoordinate(Tizen::Graphics::FloatPoint absolutePoint);
 
-       void SetWebSettingImpl(Tizen::Web::Controls::_WebSettingImpl* pWebSettingImpl);
-       _WebSettingImpl* GetWebSettingImpl(void) const;
+       WebSetting* GetSetting(void) const;
 
        virtual result OnAttaching(const _Control* pParent);
        virtual result OnBoundsChanging(const Tizen::Graphics::Rectangle& bounds);
@@ -153,10 +153,10 @@ private:
 private:
        Tizen::Ui::_ITouchEventListener* __pGestureHandler;
 
-       Tizen::Web::Controls::_WebSettingImpl* __pWebSettingImpl;
-
        std::unique_ptr<_EflWebkit> __pEflWebkit;
 
+       std::unique_ptr<WebSetting> __pWebSetting;
+
        std::unique_ptr<Tizen::Ui::_TouchFlickGestureDetector> __pGestureFlick;
 
        std::unique_ptr<Tizen::Ui::_TouchLongPressGestureDetector> __pGestureLongPress;
index 2cd3d54..395ec43 100755 (executable)
@@ -1321,6 +1321,91 @@ OnWebPreventDefaultTriggered(void* pUserData, Evas_Object* pView, void* pEventIn
 }
 
 
+result
+FireWebPageBlockSelectedEvent(_WebImpl* pImpl)
+{
+       result r = E_SUCCESS;
+
+       std::unique_ptr<Point> startPoint(new (std::nothrow) Point());
+       std::unique_ptr<Point> endPoint(new (std::nothrow) Point());
+       SysTryReturnResult(NID_WEB_CTRL, startPoint.get() && endPoint.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
+
+       pImpl->GetBlockRange(*startPoint.get(), *endPoint.get());
+
+       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED));
+       SysTryReturnResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START, *startPoint.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       startPoint.release();
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END, *endPoint.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       endPoint.release();
+
+       r = pImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pEventArg.release();
+
+       return E_SUCCESS;
+}
+
+
+result
+FireWebPageBlockSelectedEventF(_WebImpl* pImpl)
+{
+       result r = E_SUCCESS;
+
+       std::unique_ptr<FloatPoint> startPoint(new (std::nothrow) FloatPoint());
+       std::unique_ptr<FloatPoint> endPoint(new (std::nothrow) FloatPoint());
+
+       SysTryReturnResult(NID_WEB_CTRL, startPoint.get() && endPoint.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
+
+       pImpl->GetBlockRange(*startPoint.get(), *endPoint.get());
+
+       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED_FLOAT));
+       SysTryReturnResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START, *startPoint.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       startPoint.release();
+
+       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END, *endPoint.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       endPoint.release();
+
+       r = pImpl->GetWebEvent()->FireAsync(*pEventArg.get());
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       pEventArg.release();
+
+       return E_SUCCESS;
+}
+
+
+void
+OnWebPageBlockSelected(void* pUserData, Evas_Object* pView, void* pEventInfo)
+{
+       _WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
+       Ewk_Text_Style* pStyle = reinterpret_cast< Ewk_Text_Style* >(pEventInfo);
+       SysAssertf(pImpl && pStyle, "Failed to request");
+
+       if (pImpl->GetUiEventListener())
+       {
+               result r = E_SUCCESS;
+
+               r = FireWebPageBlockSelectedEvent(pImpl);
+               SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+       if (pImpl->GetUiEventListenerF())
+       {
+               result r = E_SUCCESS;
+
+               r = FireWebPageBlockSelectedEventF(pImpl);
+               SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+}
+
+
 Eina_Bool
 OnSelectUploadFile(Evas_Object* pView, Eina_Bool multipleFile, Eina_List* pAcceptTypes, const char* pCapture, void* pUserData)
 {
@@ -1833,7 +1918,6 @@ _WebImpl::_WebImpl(Web* pWeb, Tizen::Ui::_Control* pCore)
        , __pUserKeypadEventListener(null)
        , __pTextSearchListener(null)
        , __pKeypad(null)
-       , __pWebSetting(null)
        , __pJsBridgeList(null)
        , __pJsProvider(null)
        , __pJsComparer(null)
@@ -1936,9 +2020,6 @@ _WebImpl::Construct(void)
        r = __textSearch.__searchQueue.Construct();
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       __pWebSetting = std::unique_ptr<WebSetting>(new (std::nothrow) WebSetting());
-       SysTryReturn(NID_WEB_CTRL, __pWebSetting.get(), E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
        r = InitJsBridgeList();
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -1948,8 +2029,6 @@ _WebImpl::Construct(void)
        __pWebCore = dynamic_cast< _Web* >(&(GetCore()));
        SysTryReturnResult(NID_WEB_CTRL, __pWebCore, E_SYSTEM, "A system error has been occurred. Failed to get web control");
 
-       __pWebCore->SetWebSettingImpl(_WebSettingImpl::GetInstance(__pWebSetting.get()));
-
        return E_SUCCESS;
 }
 
@@ -1959,12 +2038,14 @@ _WebImpl::InitializeSetting(void)
 {
        result r = E_SUCCESS;
 
-       r = SetSetting(*__pWebSetting.get());
+       r = SetSetting(*__pWebCore->GetSetting());
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       SetCookieEnabled(_WebSettingImpl::GetInstance(__pWebSetting.get())->IsCookieEnabled());
-       SetPrivateBrowsingEnabled(_WebSettingImpl::GetInstance(__pWebSetting.get())->IsPrivateBrowsingEnabled());
-       SetZoomLevel(_WebSettingImpl::GetInstance(__pWebSetting.get())->GetZoomLevel());
+       _WebSettingImpl* pWebSettingImpl = _WebSettingImpl::GetInstance(__pWebCore->GetSetting());
+
+       SetCookieEnabled(pWebSettingImpl->IsCookieEnabled());
+       SetPrivateBrowsingEnabled(pWebSettingImpl->IsPrivateBrowsingEnabled());
+       SetZoomLevel(pWebSettingImpl->GetZoomLevel());
 
        SetEventListenerCallback();
 
@@ -2604,19 +2685,21 @@ _WebImpl::SetSetting(const WebSetting& setting)
                ewk_settings_autofill_password_form_enabled_set(pSettings,  static_cast< Eina_Bool >(setting.IsAutoLoginFormFillEnabled()));
        }
 
-       __pWebSetting->SetCertificateErrorHandlingMode(setting.GetCertificateErrorHandlingMode());
-       __pWebSetting->SetDefaultTextEncoding(setting.GetDefaultTextEncoding());
-       __pWebSetting->SetCacheControl(setting.GetCacheControl());
-       __pWebSetting->SetFontSize(setting.GetFontSize());
-       __pWebSetting->SetJavascriptEnabled(setting.IsJavascriptEnabled());
-       __pWebSetting->SetAutoImageLoadEnabled(setting.IsAutoImageLoadEnabled());
-       __pWebSetting->SetInputStyle(setting.GetInputStyle());
-       __pWebSetting->SetUserAgent(setting.GetUserAgent());
-       __pWebSetting->SetAutoFittingEnabled(setting.IsAutoFittingEnabled());
-       __pWebSetting->SetJavaScriptPopupEnabled(setting.IsJavaScriptPopupEnabled());
-       __pWebSetting->SetGeolocationEnabled(setting.IsGeolocationEnabled());
-       __pWebSetting->SetAutoFormDataShowEnabled(setting.IsAutoFormDataShowEnabled());
-       __pWebSetting->SetAutoLoginFormFillEnabled(setting.IsAutoLoginFormFillEnabled());
+       _WebSettingImpl* pWebSettingImpl = _WebSettingImpl::GetInstance(__pWebCore->GetSetting());
+
+       pWebSettingImpl->SetCertificateErrorHandlingMode(setting.GetCertificateErrorHandlingMode());
+       pWebSettingImpl->SetDefaultTextEncoding(setting.GetDefaultTextEncoding());
+       pWebSettingImpl->SetCacheControl(setting.GetCacheControl());
+       pWebSettingImpl->SetFontSize(setting.GetFontSize());
+       pWebSettingImpl->SetJavascriptEnabled(setting.IsJavascriptEnabled());
+       pWebSettingImpl->SetAutoImageLoadEnabled(setting.IsAutoImageLoadEnabled());
+       pWebSettingImpl->SetInputStyle(setting.GetInputStyle());
+       pWebSettingImpl->SetUserAgent(setting.GetUserAgent());
+       pWebSettingImpl->SetAutoFittingEnabled(setting.IsAutoFittingEnabled());
+       pWebSettingImpl->SetJavaScriptPopupEnabled(setting.IsJavaScriptPopupEnabled());
+       pWebSettingImpl->SetGeolocationEnabled(setting.IsGeolocationEnabled());
+       pWebSettingImpl->SetAutoFormDataShowEnabled(setting.IsAutoFormDataShowEnabled());
+       pWebSettingImpl->SetAutoLoginFormFillEnabled(setting.IsAutoLoginFormFillEnabled());
 
        return E_SUCCESS;
 }
@@ -2625,7 +2708,7 @@ _WebImpl::SetSetting(const WebSetting& setting)
 WebSetting
 _WebImpl::GetSetting(void) const
 {
-       return *__pWebSetting;
+       return *__pWebCore->GetSetting();
 }
 
 
@@ -2774,7 +2857,7 @@ _WebImpl::IsPrivateBrowsingEnabled(void) const
 {
        if (__pWebCore->GetWebNativeNode() == null)
        {
-               return _WebSettingImpl::GetInstance(__pWebSetting.get())->IsPrivateBrowsingEnabled();
+               return _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->IsPrivateBrowsingEnabled();
        }
 
        Ewk_Settings* pSettings = ewk_view_settings_get(__pWebCore->GetWebNativeNode());
@@ -2789,7 +2872,7 @@ _WebImpl::SetPrivateBrowsingEnabled(bool enable)
 {
        if (__pWebCore->GetWebNativeNode() == null)
        {
-               _WebSettingImpl::GetInstance(__pWebSetting.get())->SetPrivateBrowsingEnabled(enable);
+               _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->SetPrivateBrowsingEnabled(enable);
                return;
        }
 
@@ -2853,7 +2936,7 @@ _WebImpl::IsCookieEnabled(void) const
 {
        if (__pWebCore->GetWebNativeNode() == null)
        {
-               return _WebSettingImpl::GetInstance(__pWebSetting.get())->IsCookieEnabled();
+               return _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->IsCookieEnabled();
        }
 
        Ewk_Context* pContext = ewk_view_context_get(__pWebCore->GetWebNativeNode());
@@ -2877,7 +2960,7 @@ _WebImpl::SetCookieEnabled(bool enable)
 {
        if (__pWebCore->GetWebNativeNode() == null)
        {
-               _WebSettingImpl::GetInstance(__pWebSetting.get())->SetCookiEnabled(enable);
+               _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->SetCookiEnabled(enable);
 
                return;
        }
@@ -3002,14 +3085,14 @@ _WebImpl::SetTextSearchListener(ITextSearchListener* pTextSearchListener)
 void
 _WebImpl::SetScrollEnabled(bool enable)
 {
-       _WebSettingImpl::GetInstance(__pWebSetting.get())->SetScrollEnabled(enable);
+       _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->SetScrollEnabled(enable);
 }
 
 
 bool
 _WebImpl::IsScrollEnabled(void) const
 {
-       return _WebSettingImpl::GetInstance(__pWebSetting.get())->IsScrollEnabled();
+       return _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->IsScrollEnabled();
 }
 
 
@@ -3208,6 +3291,8 @@ _WebImpl::SetEventListenerCallback(void) const
                evas_object_smart_callback_add(pWebNativeNode, "touchmove,handled", OnWebPreventDefaultTriggered, this);
                evas_object_smart_callback_add(pWebNativeNode, "icon,received", OnFaviconReceived, this);
 
+               evas_object_smart_callback_add(pWebNativeNode, "text,style,state", OnWebPageBlockSelected, this);
+
                Ewk_Context* pContext = ewk_view_context_get(pWebNativeNode);
                SysAssertf(pContext, "Failed to get webkit instance.");
                ewk_context_did_start_download_callback_set(pContext, OnDidStartDownloadCallback, const_cast< _WebImpl* >(this));
@@ -3281,6 +3366,8 @@ _WebImpl::RemoveEventListenerCallback(void) const
                evas_object_smart_callback_del(pWebNativeNode, "touchmove,handled", OnWebPreventDefaultTriggered);
                evas_object_smart_callback_del(pWebNativeNode, "icon,received", OnFaviconReceived);
 
+               evas_object_smart_callback_del(pWebNativeNode, "text,style,state", OnWebPageBlockSelected);
+
                ewk_view_open_panel_callback_set(null, null, null);
 
                evas_object_event_callback_del(pWebNativeNode, EVAS_CALLBACK_FOCUS_IN, OnWebNativeNodeFocusGained);
@@ -3305,11 +3392,6 @@ _WebImpl::SetBlockSelectionPosition(const Point& startPoint)
 
        SysTryReturnResult(NID_WEB_CTRL, GetTextFromBlock().GetLength() > 0, E_INVALID_ARG, "Failed to set text selection up.");
 
-       if (__pUserUiListener)
-       {
-               FireWebPageBlockSelectedEvent();
-       }
-
        return E_SUCCESS;
 }
 
@@ -3317,82 +3399,7 @@ _WebImpl::SetBlockSelectionPosition(const Point& startPoint)
 result
 _WebImpl::SetBlockSelectionPosition(const FloatPoint& startPoint)
 {
-       Evas_Object* pWebNativeNode = __pWebCore->GetWebNativeNode();
-
-       Ewk_View_Smart_Data* pSmartData = (Ewk_View_Smart_Data*) evas_object_smart_data_get(pWebNativeNode);
-       SysAssertf(pSmartData, "Failed to request");
-
-       Point absPoint(__pWebCore->GetAbsoluteCoordinate(_CoordinateSystemUtils::ConvertToInteger(startPoint)));
-
-       pSmartData->api->text_selection_down(pSmartData, absPoint.x, absPoint.y);
-       pSmartData->api->text_selection_up(pSmartData, absPoint.x, absPoint.y);
-
-       ewk_view_command_execute(pWebNativeNode, "SelectWord", 0);
-
-       SysTryReturnResult(NID_WEB_CTRL, GetTextFromBlock().GetLength() > 0, E_INVALID_ARG, "Failed to set text selection up.");
-
-       if (__pUserUiListenerF)
-       {
-               FireWebPageBlockSelectedEventF();
-       }
-
-       return E_SUCCESS;
-}
-
-
-void
-_WebImpl::FireWebPageBlockSelectedEvent(void) const
-{
-       result r = E_SUCCESS;
-
-       std::unique_ptr<Point> startPoint(new (std::nothrow) Point());
-       std::unique_ptr<Point> endPoint(new (std::nothrow) Point());
-       SysTryReturnVoidResult(NID_WEB_CTRL, startPoint.get() && endPoint.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-       GetBlockRange(*startPoint.get(), *endPoint.get());
-
-       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED));
-       SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START, *startPoint.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       startPoint.release();
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END, *endPoint.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       endPoint.release();
-
-       r = __pWebEvent->FireAsync(*pEventArg.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       pEventArg.release();
-}
-
-
-void
-_WebImpl::FireWebPageBlockSelectedEventF(void) const
-{
-       result r = E_SUCCESS;
-
-       std::unique_ptr<FloatPoint> startPoint(new (std::nothrow) FloatPoint());
-       std::unique_ptr<FloatPoint> endPoint(new (std::nothrow) FloatPoint());
-       SysTryReturnVoidResult(NID_WEB_CTRL, startPoint.get() && endPoint.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-       GetBlockRange(*startPoint.get(), *endPoint.get());
-
-       std::unique_ptr<_WebUiEventArg> pEventArg(new (std::nothrow) _WebUiEventArg(WEB_EVENT_WEBUIEVENTLISTENER_PAGE_BLOCK_SELECTED_FLOAT));
-       SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg.get(), E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_START, *startPoint.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       startPoint.release();
-
-       r = pEventArg->SetEventInfo(_WebUiEventArg::BLOCK_END, *endPoint.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       endPoint.release();
-
-       r = __pWebEvent->FireAsync(*pEventArg.get());
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-       pEventArg.release();
+       return SetBlockSelectionPosition(_CoordinateSystemUtils::ConvertToInteger(startPoint));
 }
 
 
@@ -3406,21 +3413,13 @@ _WebImpl::ReleaseBlock(void)
 void
 _WebImpl::GetBlockRange(Point& startPoint, Point& endPoint) const
 {
-       Eina_Rectangle leftHandle;
-       Eina_Rectangle rightHandle;
-
-       ewk_view_text_selection_range_get(__pWebCore->GetWebNativeNode(), &leftHandle, &rightHandle);
+       FloatPoint tempStartPoint;
+       FloatPoint tempEndPoint;
 
-       startPoint.x = leftHandle.x;
-       startPoint.y = leftHandle.y;
-       endPoint.x = rightHandle.x + rightHandle.w;
-       endPoint.y = rightHandle.y + rightHandle.h;
+       GetBlockRange(tempStartPoint, tempEndPoint);
 
-       if ((endPoint.x != 0) && (endPoint.y != 0))
-       {
-               startPoint = __pWebCore->GetRelativeCoordinate(startPoint);
-               endPoint = __pWebCore->GetRelativeCoordinate(endPoint);
-       }
+       startPoint = _CoordinateSystemUtils::ConvertToInteger(tempStartPoint);
+       endPoint = _CoordinateSystemUtils::ConvertToInteger(tempEndPoint);
 }
 
 
@@ -3437,7 +3436,7 @@ _WebImpl::GetBlockRange(FloatPoint& startPoint, FloatPoint& endPoint) const
        endPoint.x = _CoordinateSystemUtils::ConvertToFloat(rightHandle.x + rightHandle.w);
        endPoint.y = _CoordinateSystemUtils::ConvertToFloat(rightHandle.y + rightHandle.h);
 
-       if ((endPoint.x != 0) && (endPoint.y != 0))
+       if ((endPoint.x != 0.0f) && (endPoint.y != 0.0f))
        {
                startPoint = __pWebCore->GetRelativeCoordinate(startPoint);
                endPoint = __pWebCore->GetRelativeCoordinate(endPoint);
index 684a9c5..c8cfb24 100755 (executable)
@@ -185,10 +185,6 @@ public:
 
        void  GetBlockRange(Tizen::Graphics::FloatPoint& startPoint, Tizen::Graphics::FloatPoint& endPoint) const;
 
-       void FireWebPageBlockSelectedEvent(void) const;
-
-       void FireWebPageBlockSelectedEventF(void) const;
-
        Tizen::Base::String GetTextFromBlock(void) const;
 
        Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode) const;
@@ -413,8 +409,6 @@ private:
 
        std::unique_ptr<Tizen::Ui::Controls::Keypad> __pKeypad;
 
-       std::unique_ptr<WebSetting> __pWebSetting;
-
        std::unique_ptr<Tizen::Base::Collection::HashMapT< Tizen::Base::String, IJavaScriptBridge* > > __pJsBridgeList;
        std::unique_ptr<_JsBridgeHashCodeProvider> __pJsProvider;
        std::unique_ptr<_JsBridgeComparer> __pJsComparer;