From fd28069a9a9d48aea073816fbb67c0a7b3a1b181 Mon Sep 17 00:00:00 2001 From: hyun lee Date: Thu, 11 Jul 2013 21:30:34 +0900 Subject: [PATCH] Fix for issue Change-Id: I186ddabbeb214c762c53ef2280a175624ef7901b Signed-off-by: hyun lee --- src/controls/FWebCtrl_AuthConfirmPopup.cpp | 4 ++ src/controls/FWebCtrl_CertificateConfirmPopup.cpp | 4 ++ src/controls/FWebCtrl_InputPickerPopup.cpp | 9 +++++ src/controls/FWebCtrl_InputPickerPopup.h | 2 + src/controls/FWebCtrl_UserConfirmPopup.cpp | 4 ++ src/controls/FWebCtrl_WebImpl.cpp | 46 ++++++++++++++++++----- src/controls/FWebCtrl_WebPopup.cpp | 5 +++ 7 files changed, 64 insertions(+), 10 deletions(-) diff --git a/src/controls/FWebCtrl_AuthConfirmPopup.cpp b/src/controls/FWebCtrl_AuthConfirmPopup.cpp index a0ce387..4f23f08 100755 --- a/src/controls/FWebCtrl_AuthConfirmPopup.cpp +++ b/src/controls/FWebCtrl_AuthConfirmPopup.cpp @@ -65,6 +65,10 @@ _AuthConfirmPopup::_AuthConfirmPopup(void) _AuthConfirmPopup::~_AuthConfirmPopup(void) { + if (IsModalPopup()) + { + __pAuthHandler->Cancel(); + } } diff --git a/src/controls/FWebCtrl_CertificateConfirmPopup.cpp b/src/controls/FWebCtrl_CertificateConfirmPopup.cpp index 9a23ff0..0ffec33 100755 --- a/src/controls/FWebCtrl_CertificateConfirmPopup.cpp +++ b/src/controls/FWebCtrl_CertificateConfirmPopup.cpp @@ -72,6 +72,10 @@ _CertificateConfirmPopup::_CertificateConfirmPopup(void) _CertificateConfirmPopup::~_CertificateConfirmPopup(void) { + if (IsModalPopup() == true) + { + HandleUserAction(false); + } } diff --git a/src/controls/FWebCtrl_InputPickerPopup.cpp b/src/controls/FWebCtrl_InputPickerPopup.cpp index 270b007..e6fc7be 100755 --- a/src/controls/FWebCtrl_InputPickerPopup.cpp +++ b/src/controls/FWebCtrl_InputPickerPopup.cpp @@ -63,6 +63,7 @@ _InputPickerPopup::_InputPickerPopup(void) , __pEditTime(null) , __pSelectionBtn(null) , __modal(0) + , __isModal(false) , __popupHeight(0) , __popupWidth(0) , __btnHeight(0) @@ -73,6 +74,10 @@ _InputPickerPopup::_InputPickerPopup(void) _InputPickerPopup::~_InputPickerPopup(void) { + if (__isModal == true) + { + HidePopup(); + } } @@ -480,6 +485,8 @@ _InputPickerPopup::ShowPopup(void) r = __pPopup->SetShowState(true); SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); + __isModal = true; + r = __pPopup->DoModal(__modal); SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); @@ -495,6 +502,8 @@ _InputPickerPopup::HidePopup(void) r = __pPopup->SetShowState(false); SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); + __isModal = false; + r = __pPopup->EndModal(__modal); SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); diff --git a/src/controls/FWebCtrl_InputPickerPopup.h b/src/controls/FWebCtrl_InputPickerPopup.h index 9da03f8..93151ce 100755 --- a/src/controls/FWebCtrl_InputPickerPopup.h +++ b/src/controls/FWebCtrl_InputPickerPopup.h @@ -125,6 +125,8 @@ private: Tizen::Ui::Controls::ColorPicker* __pColorPicker; int __modal; + bool __isModal; + int __popupHeight; int __popupWidth; int __btnHeight; diff --git a/src/controls/FWebCtrl_UserConfirmPopup.cpp b/src/controls/FWebCtrl_UserConfirmPopup.cpp index fe2f5e3..90d89b3 100755 --- a/src/controls/FWebCtrl_UserConfirmPopup.cpp +++ b/src/controls/FWebCtrl_UserConfirmPopup.cpp @@ -70,6 +70,10 @@ _UserConfirmPopup::_UserConfirmPopup(void) _UserConfirmPopup::~_UserConfirmPopup(void) { + if (IsModalPopup()) + { + HandleUserAction(EINA_FALSE); + } } diff --git a/src/controls/FWebCtrl_WebImpl.cpp b/src/controls/FWebCtrl_WebImpl.cpp index 59682ff..2e5d672 100755 --- a/src/controls/FWebCtrl_WebImpl.cpp +++ b/src/controls/FWebCtrl_WebImpl.cpp @@ -462,7 +462,10 @@ OnCertificateRequested(void* pUserData, Evas_Object* pView, void* pEventInfo) SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); } - pImpl->SetCertificateRequested(true); + if (pImpl) + { + pImpl->SetCertificateRequested(true); + } break; } case WEB_CERTIFICATE_ERROR_HANDLING_MODE_CANCEL: @@ -1140,6 +1143,8 @@ OnWebDataReceived(void* pUserData, Evas_Object* pView, void* pEventInfo) r = selectBox.Construct(false, L"Select application", 1); //+1 for Downloader SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r)); + selectBox.SetOwner(&pImpl->GetPublic()); + selectBox.AddListItem(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_DOWNLOAD"), _SelectBox::LIST_ITEM_TYPE_NORMAL, false); r = selectBox.ShowAndWait(selectedIndex); SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r)); @@ -1743,6 +1748,11 @@ OnWebKeypadStateChanged(void* pUserData, Evas_Object* pView, void* pEventInfo) Eina_Rectangle* pEinaRect = reinterpret_cast< Eina_Rectangle* >(pEventInfo); SysAssertf(pImpl && pEinaRect, "Failed to request"); + if (pImpl->IsVisible() == false) + { + evas_object_focus_set(pView, EINA_FALSE); + } + if (pImpl->GetSetting().GetInputStyle() == INPUT_STYLE_OVERLAY) { _ICoordinateSystemTransformer* pXformer = _CoordinateSystem::GetInstance()->GetInverseTransformer(); @@ -4615,7 +4625,10 @@ _WebImpl::ShowAuthenticationPopup(const String& host, const String& realm, Authe SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); CATCH: - __pAuthPopup.reset(); + if (__pAuthPopup) + { + __pAuthPopup.reset(); + } return r; } @@ -4641,13 +4654,16 @@ _WebImpl::ShowCertificateConfirmPopup(_CertificatePopupMode userConfirmMode, Ewk r = __pCertConfirmPopup->ShowAndWait(modalResult); SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - if (userConfirmMode == CERTIFICATE_POPUP_MODE_USER_CONFIRM) + if (__pCertConfirmPopup.get() && userConfirmMode == CERTIFICATE_POPUP_MODE_USER_CONFIRM) { __isCertificateConfirmed = __pCertConfirmPopup->GetConfirmResult(); } CATCH: - __pCertConfirmPopup.reset(); + if (__pCertConfirmPopup.get()) + { + __pCertConfirmPopup.reset(); + } return r; } @@ -5019,12 +5035,16 @@ _WebImpl::ShowColorPicker(int red, int green, int blue, int alpha, Color& color) r = __pColorPicker->ShowPopup(); SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - color = __pColorPicker->GetColor(); - - return E_SUCCESS; + if (__pColorPicker) + { + color = __pColorPicker->GetColor(); + } CATCH: - __pColorPicker.reset(); + if (__pColorPicker) + { + __pColorPicker.reset(); + } return r; } @@ -5046,10 +5066,16 @@ _WebImpl::ShowDatePicker(Ewk_Input_Type inputType, const char* inputValue, Strin r = __pDatePicker->ShowPopup(); SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); - dateStr = __pDatePicker->GetDate(); + if (__pDatePicker) + { + dateStr = __pDatePicker->GetDate(); + } CATCH: - __pDatePicker.reset(); + if (__pDatePicker) + { + __pDatePicker.reset(); + } return r; } diff --git a/src/controls/FWebCtrl_WebPopup.cpp b/src/controls/FWebCtrl_WebPopup.cpp index 5b4948b..1c35aab 100644 --- a/src/controls/FWebCtrl_WebPopup.cpp +++ b/src/controls/FWebCtrl_WebPopup.cpp @@ -50,6 +50,11 @@ _WebPopup::_WebPopup(void) _WebPopup::~_WebPopup(void) { + if (IsModalPopup() == true) + { + HidePopup(0); + } + __pWebPopupData.reset(); } -- 2.7.4