, __focusDirection(FOCUS_DIRECTION_DOWNWARD)
{
#ifdef _FOCUS_UI_
- result r = _UiEventManager::GetInstance()->AddPostKeyEventListener(*this);
- SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+ _UiEventManager* pUiEventManager = _UiEventManager::GetInstance();
+ if (pUiEventManager)
+ {
+ result r = pUiEventManager->AddPostKeyEventListener(*this);
+ SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
- r = _UiEventManager::GetInstance()->AddTouchEventListener(*this);
- SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+ r = pUiEventManager->AddTouchEventListener(*this);
+ SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+ }
#endif
}
void
_FocusManagerImpl::StartFocusTraversal(_Control* pControl, FocusDirection focusDirection)
{
+ _Control* pOriginalControl = pControl;
_Window* pTop = pControl->GetRootWindow();
if (pTop == null)
{
if (__isFocusMode == false)
{
__isFocusMode = true;
- pControl->OnFocusModeStateChanged();
+ if (pOriginalControl)
+ {
+ pOriginalControl->OnFocusModeStateChanged();
+ }
}
if (focusMode == false && pControl->IsFocused())
_Window* pTop = source.GetRootWindow();
if (pTop)
{
- _Control* pFocusTraversalControl = pTop->GetFocusTraversalControl(pSourceControl);
- if (pFocusTraversalControl)
+ _Control* pControl = pTop->GetFocusControl(pSourceControl);
+ if (pControl)
{
- pFocusTraversalControl->OnFocusModeStateChanged();
- pFocusTraversalControl->RemoveFocusRing();
+ pControl->OnFocusModeStateChanged();
+ pControl->RemoveFocusRing();
}
}