#include <FUi_CoordinateSystemUtils.h>
#include <FUi_AccessibilityContainer.h>
#include <FUi_AccessibilityElement.h>
+#include <FUi_UiEventManager.h>
#include <FUi_IAccessibilityFocusHandler.h>
#include <FUi_IAccessibilityListener.h>
#include <FUi_Math.h>
, __edgeType(WEB_EDGE_NONE)
, __pTextElement(null)
, __previousTouchedPosition(0.0f, 0.0f)
+ , __isFullScreenEntered(false)
{
SetBackgroundColor(Color(0, 0, 0, 0));
}
_Web::~_Web(void)
{
+ _UiEventManager* pManager = _UiEventManager::GetInstance();
+ SysAssertf(pManager, "Failed to get ui evnet manager.");
+
+ pManager->RemoveKeyEventListener(*this);
+
RemoveGestureListener();
}
r = pWeb->InitializeGestureStates();
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
+ _UiEventManager* pManager = _UiEventManager::GetInstance();
+ SysAssertf(pManager, "Failed to get ui evnet manager.");
+
+ pManager->AddKeyEventListener(*pWeb.get());
+
return pWeb.release();
}
}
+void
+_Web::SetFullScreenEntered(bool isFullScreenEntered)
+{
+ __isFullScreenEntered = isFullScreenEntered;
+}
+
+
+bool
+_Web::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
+{
+ if (__isFullScreenEntered)
+ {
+ if (keyInfo.GetKeyCode() == _KEY_ESC || keyInfo.GetKeyCode() == _KEY_BACK)
+ {
+ __isFullScreenEntered = false;
+
+ ewk_view_fullscreen_exit(GetWebNativeNode());
+
+ return true;
+ }
+ }
+
+ return false;
+}
+
+
}}} // Tizen::Web::Controls
OnFullScreenEntered(void* pUserData, Evas_Object* pView, void* pEventInfo)
{
_WebImpl* pImpl = reinterpret_cast<_WebImpl*>(pUserData);
- SysAssertf(pImpl, "Failed to request");
+ bool* pIsHandleNeeded = reinterpret_cast< bool* >(pEventInfo);
+ SysAssertf(pImpl && pIsHandleNeeded, "Failed to request");
+
+ _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
+ SysAssertf(pWebCore, "Failed to get Web core object");
- SysLog(NID_WEB_CTRL, "Enter.");
+ if (*pIsHandleNeeded)
+ {
+ pWebCore->SetFullScreenEntered(true);
+ }
}
_WebImpl* pImpl = reinterpret_cast<_WebImpl*>(pUserData);
SysAssertf(pImpl, "Failed to request");
- SysLog(NID_WEB_CTRL, "Exit.");
+ _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
+ SysAssertf(pWebCore, "Failed to get Web core object");
+
+ pWebCore->SetFullScreenEntered(false);
}
if (pImpl->GetLoadingListener() && ewk_frame_is_main_frame(ewk_policy_decision_frame_get(pPolicy))
&& !pImpl->IsRedirectRequested())
{
+ _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
+ SysAssertf(pWebCore, "Failed to get Web core object");
+
+ pWebCore->SetFullScreenEntered(false);
+
pImpl->SetCertificateRequested(false);
if (pImpl->GetTextSearchListener())
_WebImpl::~_WebImpl()
{
+ _DownloadManagerImpl* pManagerImpl = _DownloadManagerImpl::GetInstance();
+ pManagerImpl->SetDownloadListener(null);
+
+ _WebManager* pWebManager = _WebManager::GetInstance();
+ pWebManager->RemoveWeb(reinterpret_cast< int >(this));
+
+ RemoveEventListenerCallback();
+
ClearCertificateDb();
}
pWebManager->SetActiveWeb(this);
}
- r = __pWebCore->InitializeWebNativeNode();
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ if (!HasValidNativeNode())
+ {
+ r = __pWebCore->InitializeWebNativeNode();
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- _ControlManager* pControlManager = _ControlManager::GetInstance();
- SysTryReturnResult(NID_WEB_CTRL, pControlManager, E_SYSTEM, "Failed to get the ControlManager instance.");
- OnChangeLayout(pControlManager->GetScreenRotation());
+ _ControlManager* pControlManager = _ControlManager::GetInstance();
+ SysTryReturnResult(NID_WEB_CTRL, pControlManager, E_SYSTEM, "Failed to get the ControlManager instance.");
+ OnChangeLayout(pControlManager->GetScreenRotation());
- r = InitializeSetting();
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ r = InitializeSetting();
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- r = _ContainerImpl::OnPreAttachedToMainTree();
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ r = _ContainerImpl::OnPreAttachedToMainTree();
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- _WebManager* pWebManager = _WebManager::GetInstance();
- pWebManager->AddWeb(reinterpret_cast< int >(this));
+ _WebManager* pWebManager = _WebManager::GetInstance();
+ pWebManager->AddWeb(reinterpret_cast< int >(this));
+ }
return E_SUCCESS;
}
_WebImpl::OnDetachingFromMainTree(void)
{
_WebManager* pWebManager = _WebManager::GetInstance();
- pWebManager->RemoveWeb(reinterpret_cast< int >(this));
pWebManager->RemoveActiveWeb(this);
- _DownloadManagerImpl* pManagerImpl = _DownloadManagerImpl::GetInstance();
- pManagerImpl->SetDownloadListener(null);
-
- RemoveEventListenerCallback();
-
return E_SUCCESS;
}