From b21935a4961f3c11aff0a36cc7cd2f7a27f3dcd9 Mon Sep 17 00:00:00 2001 From: Seongjun Yim Date: Sat, 30 Mar 2013 17:18:53 +0900 Subject: [PATCH] refactoring text selection module Change-Id: I139db930f48f3458ed1d621290c3ab79e5c61c10 Signed-off-by: Seongjun Yim --- src/controls/FWebCtrl_Web.cpp | 28 ++--- src/controls/FWebCtrl_Web.h | 8 +- src/controls/FWebCtrl_WebImpl.cpp | 249 +++++++++++++++++++------------------- src/controls/FWebCtrl_WebImpl.h | 6 - 4 files changed, 137 insertions(+), 154 deletions(-) diff --git a/src/controls/FWebCtrl_Web.cpp b/src/controls/FWebCtrl_Web.cpp index e946f6a..f745983 100755 --- a/src/controls/FWebCtrl_Web.cpp +++ b/src/controls/FWebCtrl_Web.cpp @@ -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(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); } diff --git a/src/controls/FWebCtrl_Web.h b/src/controls/FWebCtrl_Web.h index c6c5885..db2f32e 100755 --- a/src/controls/FWebCtrl_Web.h +++ b/src/controls/FWebCtrl_Web.h @@ -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 __pWebSetting; + std::unique_ptr __pGestureFlick; std::unique_ptr __pGestureLongPress; diff --git a/src/controls/FWebCtrl_WebImpl.cpp b/src/controls/FWebCtrl_WebImpl.cpp index 2cd3d54..395ec43 100755 --- a/src/controls/FWebCtrl_WebImpl.cpp +++ b/src/controls/FWebCtrl_WebImpl.cpp @@ -1321,6 +1321,91 @@ OnWebPreventDefaultTriggered(void* pUserData, Evas_Object* pView, void* pEventIn } +result +FireWebPageBlockSelectedEvent(_WebImpl* pImpl) +{ + result r = E_SUCCESS; + + std::unique_ptr startPoint(new (std::nothrow) Point()); + std::unique_ptr 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 startPoint(new (std::nothrow) FloatPoint()); + std::unique_ptr 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(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 startPoint(new (std::nothrow) Point()); - std::unique_ptr 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 startPoint(new (std::nothrow) FloatPoint()); - std::unique_ptr 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); diff --git a/src/controls/FWebCtrl_WebImpl.h b/src/controls/FWebCtrl_WebImpl.h index 684a9c5..c8cfb24 100755 --- a/src/controls/FWebCtrl_WebImpl.h +++ b/src/controls/FWebCtrl_WebImpl.h @@ -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 __pKeypad; - std::unique_ptr __pWebSetting; - std::unique_ptr > __pJsBridgeList; std::unique_ptr<_JsBridgeHashCodeProvider> __pJsProvider; std::unique_ptr<_JsBridgeComparer> __pJsComparer; -- 2.7.4