add H/W backkey action
authorHyunseok Yang <hs0219.yang@samsung.com>
Thu, 11 Jul 2013 09:55:58 +0000 (18:55 +0900)
committerHyunseok Yang <hs0219.yang@samsung.com>
Thu, 11 Jul 2013 11:26:11 +0000 (20:26 +0900)
Change-Id: I81802e7a7f6fed385e217bef2e992439f49b25a4
Signed-off-by: Hyunseok Yang <hs0219.yang@samsung.com>
15 files changed:
CMakeLists.txt
packaging/osp-web.spec
src/controls/FWebCtrl_AuthConfirmPopup.cpp
src/controls/FWebCtrl_AuthConfirmPopup.h
src/controls/FWebCtrl_CertificateConfirmPopup.cpp
src/controls/FWebCtrl_CertificateConfirmPopup.h
src/controls/FWebCtrl_InputPickerPopup.cpp
src/controls/FWebCtrl_InputPickerPopup.h
src/controls/FWebCtrl_PromptPopup.cpp
src/controls/FWebCtrl_PromptPopup.h
src/controls/FWebCtrl_SelectBox.cpp
src/controls/FWebCtrl_SelectBox.h [changed mode: 0644->0755]
src/controls/FWebCtrl_UserConfirmPopup.cpp
src/controls/FWebCtrl_UserConfirmPopup.h
src/controls/inc/FWebCtrl_WebImpl.h [moved from src/controls/FWebCtrl_WebImpl.h with 99% similarity]

index ebc51c4..7383223 100755 (executable)
@@ -9,6 +9,8 @@ INCLUDE_DIRECTORIES(
        inc
        src
        src/controls
+       src/controls/inc
+
        /usr/include/appfw
        /usr/include/glib-2.0 
        /usr/lib/glib-2.0/include
@@ -165,6 +167,7 @@ INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/debug/ DESTINATION lib/osp/browser-plug
 
 
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/inc/ DESTINATION include/osp FILES_MATCHING PATTERN "*.h")
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/src/controls/inc/ DESTINATION include/osp/web/controls FILES_MATCHING PATTERN "*.h")
 
 # pkgconfig file
 CONFIGURE_FILE(${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
index e906a30..cf9b7e7 100755 (executable)
@@ -60,6 +60,14 @@ Requires:   %{name} = %{version}-%{release}
 %description devel
 osp web library (DEV)
 
+%package internal-devel
+Summary:    osp web framework internel (Internal)
+Group:      TO_BE/FILLED_IN
+Requires:   %{name} = %{version}-%{release}
+
+%description internal-devel
+The Web Framework library of OSP (Internal-DEV)
+
 %package debug
 Summary:    osp web library (Development)
 Group:      TO_BE/FILLED_IN
@@ -103,6 +111,9 @@ cat %{_builddir}/%{name}-%{version}/LICENSE.APLv2.0 >> %{buildroot}/usr/share/li
 %{_includedir}/osp/*.h
 %{_libdir}/pkgconfig/osp-web.pc
 
+%files internal-devel
+%{_includedir}/osp/web/controls/*.h
+
 %files debug
 %{_libdir}/osp/debug/*.so.*
 %{_libdir}/osp/browser-plugin/debug/*.so
index 62a8632..a0ce387 100755 (executable)
@@ -28,6 +28,7 @@
 #include <FUiCtrlEditField.h>
 #include <FUiCtrlLabel.h>
 #include <FUiCtrlPanel.h>
+#include <FUiKeyEventInfo.h>
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FWebCtrlAuthenticationChallenge.h>
@@ -177,6 +178,8 @@ _AuthConfirmPopup::Construct(const String& host, const String& realm, Authentica
        pLayout->SetSpacing(*__pPwdEditField, pPopupData->spacePad);
        pLayout->SetSpacing(*pButtonPanel, pPopupData->spacePad);
 
+       SetPropagatedKeyEventListener(this);
+
        return E_SUCCESS;
 }
 
@@ -204,5 +207,46 @@ _AuthConfirmPopup::OnActionPerformed(const Control& source, int actionId)
        SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
 }
 
+bool
+_AuthConfirmPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+_AuthConfirmPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       result r = E_SUCCESS;
+       if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+       {
+               __pAuthHandler->Cancel();
+               r = HidePopup();
+               if (IsFailed(r))
+               {
+                       SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+               }
+       }
+
+       return true;
+}
+
+bool
+_AuthConfirmPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_AuthConfirmPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_AuthConfirmPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
 
 }}} // Tizen::Web::Controls
index 5defceb..8913901 100755 (executable)
@@ -25,6 +25,7 @@
 
 #include <unique_ptr.h>
 #include <FBaseString.h>
+#include <FUiIPropagatedKeyEventListener.h>
 #include "FWebCtrl_WebPopup.h"
 
 namespace Tizen { namespace Ui
@@ -51,6 +52,7 @@ enum _AuthPopupButtonId
 
 class _AuthConfirmPopup
        : public _WebPopup
+       , public Tizen::Ui::IPropagatedKeyEventListener
 {
 
 public:
@@ -68,6 +70,12 @@ public:
 
        virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
 
+       virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
+
 private:
        _AuthConfirmPopup(const _AuthConfirmPopup&);
 
index a28b4a0..9a23ff0 100755 (executable)
@@ -31,6 +31,7 @@
 #include <FUiCtrlButton.h>
 #include <FUiCtrlLabel.h>
 #include <FUiCtrlPanel.h>
+#include <FUiKeyEventInfo.h>
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FIo_DatabaseImpl.h>
@@ -195,6 +196,8 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer
 
        pLayout->SetSpacing(*pButtonPanel, 2*pPopupData->sideMargin);
 
+       SetPropagatedKeyEventListener(this);
+
        return E_SUCCESS;
 }
 
@@ -250,6 +253,50 @@ _CertificateConfirmPopup::OnActionPerformed(const Control& source, int actionId)
        }
 }
 
+bool
+_CertificateConfirmPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+_CertificateConfirmPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       result r = E_SUCCESS;
+       if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+       {
+               HandleUserAction(false);
+               r = HidePopup();
+               if (IsFailed(r))
+               {
+                       SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+               }
+               if (__certPopupMode == CERTIFICATE_POPUP_MODE_VIEW )
+               {
+                       GetOwner()->SendUserEvent(ID_CERTIFICATE_CONFIRM_POPUP_CLOSE, null);
+               }
+       }
+
+       return true;
+}
+
+bool
+_CertificateConfirmPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_CertificateConfirmPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_CertificateConfirmPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
 
 bool
 _CertificateConfirmPopup::GetConfirmResult() const
index 74ab120..f9b3c0d 100755 (executable)
@@ -26,6 +26,7 @@
 #include <EWebKit2.h>
 #include <unique_ptr.h>
 #include <FBaseString.h>
+#include <FUiIPropagatedKeyEventListener.h>
 #include "FWebCtrl_WebPopup.h"
 
 
@@ -48,6 +49,7 @@ enum _CertificatePopupMode
 
 class _CertificateConfirmPopup
        : public _WebPopup
+       , public Tizen::Ui::IPropagatedKeyEventListener
 {
 
 public:
@@ -71,6 +73,12 @@ public:
 
        virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
 
+       virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
+
 private:
        _CertificateConfirmPopup(const _CertificateConfirmPopup&);
 
index 77f2696..270b007 100755 (executable)
@@ -32,6 +32,7 @@
 #include <FUiCtrlEditTime.h>
 #include <FUiCtrlLabel.h>
 #include <FUiIActionEventListener.h>
+#include <FUiKeyEventInfo.h>
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FWebCtrlAuthenticationChallenge.h>
@@ -195,6 +196,7 @@ _InputPickerPopup::Construct(const String& strDate, Ewk_Input_Type inputType, Ti
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
        __pPopup->SetOwner(&pImpl->GetPublic());
+       __pPopup->SetPropagatedKeyEventListener(this);
        
        std::unique_ptr<VerticalBoxLayout> pLayout(dynamic_cast< VerticalBoxLayout* >(__pPopup->GetLayoutN()));
        SysTryReturnResult(NID_WEB_CTRL, pLayout.get(), E_OUT_OF_MEMORY, "Memory Allocation Failed.");
@@ -243,6 +245,7 @@ _InputPickerPopup::Construct(const Color& color, Tizen::Web::Controls::_WebImpl*
        pColorPicker->SetColor(color);
 
        __pPopup->SetOwner(&pImpl->GetPublic());
+       __pPopup->SetPropagatedKeyEventListener(this);
        r = __pPopup->AddControl(*pColorPicker);
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -498,6 +501,40 @@ _InputPickerPopup::HidePopup(void)
        return E_SUCCESS;
 }
 
+bool
+_InputPickerPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+_InputPickerPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+       {
+               HidePopup();
+       }
+
+       return true;
+}
+
+bool
+_InputPickerPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_InputPickerPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_InputPickerPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
 
 String
 _InputPickerPopup::GetDate(void) const
index 1603471..9da03f8 100755 (executable)
@@ -30,6 +30,7 @@
 #include <FGrpColor.h>
 #include <FUi.h>
 #include <FUiIActionEventListener.h>
+#include <FUiIPropagatedKeyEventListener.h>
 #include <FUi_ControlManager.h>
 
 namespace Tizen { namespace Ui
@@ -63,6 +64,7 @@ enum _InputPickerMode
 class _InputPickerPopup
        : public Tizen::Base::Object
        , virtual public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IPropagatedKeyEventListener
 {
 
 public:
@@ -90,6 +92,12 @@ public:
        result ShowPopup(void);
        result HidePopup(void);
 
+       virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
+
 private:
        _InputPickerPopup(const _InputPickerPopup& rhs);
 
index 4135087..9ae605e 100755 (executable)
@@ -30,6 +30,7 @@
 #include <FUiCtrlLabel.h>
 #include <FUiCtrlPanel.h>
 #include <FUiCtrlTextBox.h>
+#include <FUiKeyEventInfo.h>
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FWebCtrlAuthenticationChallenge.h>
@@ -162,6 +163,8 @@ _PromptPopup::Construct(const String& message, const String& defaultVale,  Evas_
        pLayout->SetSpacing(*__pEditField, pPopupData->spacePad);
        pLayout->SetSpacing(*pButtonPanel, pPopupData->spacePad);
 
+       SetPropagatedKeyEventListener(this);
+       
        return r;
 }
 
@@ -197,5 +200,42 @@ _PromptPopup::OnActionPerformed(const Control& source, int actionId)
        GetOwner()->SendUserEvent(ID_PROMPT_POPUP_CLOSE, null);
 }
 
+bool
+_PromptPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+_PromptPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+       {
+               HidePopup(ID_BUTTON_PROMPT_CANCEL);
+               ewk_view_javascript_prompt_reply(__pWebView, null);
+               GetOwner()->SendUserEvent(ID_PROMPT_POPUP_CLOSE, null);
+       }
+
+       return true;
+}
+
+bool
+_PromptPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_PromptPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_PromptPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
 
 }}} // Tizen::Web::Controls
index 8539ab4..ce672f9 100755 (executable)
@@ -24,6 +24,7 @@
 
 #include <unique_ptr.h>
 #include <FBaseString.h>
+#include <FUiIPropagatedKeyEventListener.h>
 #include "FWebCtrl_WebPopup.h"
 
 namespace Tizen { namespace Ui { namespace Controls
@@ -43,6 +44,7 @@ enum _PromptPopupButtonId
 
 class _PromptPopup
        : public _WebPopup
+       , public Tizen::Ui::IPropagatedKeyEventListener
 {
 
 public:
@@ -62,6 +64,12 @@ public:
 
        virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
 
+       virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
+
 private:
 
        _PromptPopup(const _PromptPopup&);
index ba1084b..6d8d94f 100755 (executable)
@@ -35,6 +35,7 @@
 #include <FUiCtrlListView.h>
 #include <FUiCtrlPanel.h>
 #include <FUiIActionEventListener.h>
+#include <FUiKeyEventInfo.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FSys_SystemResource.h>
 #include <FUi_ResourceManager.h>
@@ -250,6 +251,8 @@ _SelectBox::Construct(bool isMultiSelect, const String& title, int listCount, Ev
 
        pLayout->SetSpacing(*pButtonPanel,  pPopupData->spacePad);
 
+       SetPropagatedKeyEventListener(this);
+       
        return r;
 }
 
@@ -465,6 +468,52 @@ _SelectBox::OnActionPerformed(const Control& source, int actionId)
        SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
 }
 
+bool
+_SelectBox::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+_SelectBox::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+       {
+               if (__multiSelection)
+               {
+                       ewk_view_popup_menu_multiple_select(__pWebView, null);
+               }
+               else
+               {
+                       ewk_view_popup_menu_select(__pWebView, __prevIndex);
+               }
+               result r = HidePopup(__SelectedIndex);
+               if (IsFailed(r))
+               {
+                       SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+               }
+       }
+
+       return true;
+}
+
+bool
+_SelectBox::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_SelectBox::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_SelectBox::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
 
 result
 _SelectBox::UpdateList(Eina_List* pItems, int prevIndex, bool clearPrevList, bool isGroupdList)
old mode 100644 (file)
new mode 100755 (executable)
index 638c237..ff85090
@@ -29,6 +29,7 @@
 #include <FBaseString.h>
 #include <FUiCtrlIListViewItemEventListener.h>
 #include <FUiCtrlIListViewItemProvider.h>
+#include <FUiIPropagatedKeyEventListener.h>
 #include <FUi_ControlManager.h>
 #include "FWebCtrl_WebPopup.h"
 
@@ -64,6 +65,7 @@ class _SelectBox
        : public _WebPopup
        , public Tizen::Ui::Controls::IListViewItemEventListener
        , public Tizen::Ui::Controls::IListViewItemProvider
+       , public Tizen::Ui::IPropagatedKeyEventListener
 {
 public:
        /**
@@ -91,6 +93,12 @@ public:
 
        virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
 
+       virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
+
        result AddListItem(const Tizen::Base::String& itemText, int itemType,bool slected);
        result UpdateList(Eina_List* pItems, int prevIndex, bool clearPrevList, bool isGroupdList);
 
index 5dd549a..fe2f5e3 100755 (executable)
@@ -31,6 +31,7 @@
 #include <FUiCtrlButton.h>
 #include <FUiCtrlLabel.h>
 #include <FUiCtrlPanel.h>
+#include <FUiKeyEventInfo.h>
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FIo_DatabaseImpl.h>
@@ -198,6 +199,7 @@ _UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo,
                pLayout->SetSpacing(*pButtonPanel, 2*pPopupData->sideMargin);
        }
 
+       SetPropagatedKeyEventListener(this);
        return E_SUCCESS;
 }
 
@@ -490,5 +492,79 @@ _UserConfirmPopup::RegisterHandler(bool checkHandler, Eina_Bool allow)
        }
 }
 
+bool
+_UserConfirmPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return true;
+}
+
+bool
+_UserConfirmPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       result r = E_SUCCESS;
+       if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+       {
+               HandleUserAction(EINA_FALSE);
+               r = HidePopup();
+
+               if (IsFailed(r))
+               {
+                       SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+               }
+               
+               switch (__userConfirmMode)
+               {
+               case USER_CONFIRM_USERMEDIA:
+               {
+                       GetOwner()->SendUserEvent(ID_USER_CONFIRM_USERMEDIA_CLOSE, null);
+                       break;
+               }
+               case USER_CONFIRM_GEOLOCATION:
+               {
+                       GetOwner()->SendUserEvent(ID_USER_CONFIRM_GEOLOCATION_CLOSE, null);
+                       break;
+               }
+               case USER_CONFIRM_NOTIFICATION:
+               {
+                       GetOwner()->SendUserEvent(ID_USER_CONFIRM_NOTIFICATION_CLOSE, null);
+                       break;
+               }
+               case USER_SCRIPT_ALERT:
+               {
+                       GetOwner()->SendUserEvent(ID_USER_SCRIPT_ALERT_CLOSE, null);
+                       break;
+               }
+               case USER_PROTOCOL_HANDLER:
+               case USER_CONTENT_HANDLER:
+               case USER_CONFIRM_APP_CACHE:
+               case USER_CONFIRM_DB_QUOTA_EXCEDED:
+               case USER_CONFIRM_LOCAL_FS_QUOTA_EXCEDED:
+               case USER_CONFIRM_INDEXED_DB_QUOTA_EXCEDED:
+                       break;
+               default:
+                       SysAssert(false);
+               }
+       }
+       return true;
+}
+
+bool
+_UserConfirmPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_UserConfirmPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
+bool
+_UserConfirmPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+       return false;
+}
+
 
 }}} // Tizen::Web::Controls
index b6d1374..a693806 100755 (executable)
@@ -25,6 +25,7 @@
 #include <unique_ptr.h>
 #include <EWebKit2.h>
 #include <FBaseString.h>
+#include <FUiIPropagatedKeyEventListener.h>
 #include "FWebCtrl_WebPopup.h"
 
 namespace Tizen { namespace Ui { namespace Controls
@@ -45,8 +46,8 @@ enum _UserConfirmPopupButtonId
 enum _UserConfirmMode
 {
        USER_CONFIRM_USERMEDIA,
-       USER_CONTENT_HANDLER,
        USER_PROTOCOL_HANDLER,
+       USER_CONTENT_HANDLER,
        USER_CONFIRM_GEOLOCATION,
        USER_CONFIRM_NOTIFICATION,
        USER_SCRIPT_ALERT,
@@ -58,6 +59,7 @@ enum _UserConfirmMode
 
 class _UserConfirmPopup
        : public _WebPopup
+       , public Tizen::Ui::IPropagatedKeyEventListener
 {
 
 public:
@@ -75,6 +77,12 @@ public:
 
        virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
 
+       virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
+       virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
+
 private:
        _UserConfirmPopup(const _UserConfirmPopup&);
 
similarity index 99%
rename from src/controls/FWebCtrl_WebImpl.h
rename to src/controls/inc/FWebCtrl_WebImpl.h
index 1303c18..cc719a3 100755 (executable)
@@ -32,6 +32,7 @@
 #include <FUiIActionEventListener.h>
 #include <FUiIOrientationEventListener.h>
 #include <FUiITextEventListener.h>
+#include <FUiIPropagatedKeyEventListener.h>
 #include <FWebCtrlILoadingListener.h>
 #include <FUi_ContainerImpl.h>
 #include "FWebCtrl_CertificateConfirmPopup.h"
@@ -139,7 +140,7 @@ enum _WebPopupCloseId
        ID_USER_SCRIPT_ALERT_CLOSE
 };
 
-class _WebImpl
+class _OSP_EXPORT_ _WebImpl
        : public Tizen::Ui::_ContainerImpl
        , public Tizen::Ui::ITextEventListener
        , public Tizen::Web::Controls::_IWebEventListener