From: keonpyo.kong Date: Fri, 28 Jun 2013 09:04:45 +0000 (+0900) Subject: Defect fix SetFocusControl / Check window enable state X-Git-Tag: accepted/tizen/20130924.144426~1^2~276 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2c2ccbc4518f2c7a6f6a8cfefbfcb0b10ee473dc;p=platform%2Fframework%2Fnative%2Fuifw.git Defect fix SetFocusControl / Check window enable state Change-Id: I3b354f6e0085e170639514472e4623a3e0950aef Signed-off-by: keonpyo.kong --- diff --git a/src/ui/FUi_FocusManagerImpl.cpp b/src/ui/FUi_FocusManagerImpl.cpp index 13f1ff1..51d01f5 100644 --- a/src/ui/FUi_FocusManagerImpl.cpp +++ b/src/ui/FUi_FocusManagerImpl.cpp @@ -262,6 +262,11 @@ void _FocusManagerImpl::StartFocusTraversal(_Control* pControl, FocusDirection focusDirection) { _Window* pTop = pControl->GetRootWindow(); + bool isWindowEnabled = pTop->IsEnabled(); + if (!isWindowEnabled) + { + return; + } if (pTop) { _Control* pFocusTraversalControl = pTop->GetFocusTraversalControl(pControl); diff --git a/src/ui/controls/FUiCtrl_Frame.cpp b/src/ui/controls/FUiCtrl_Frame.cpp index 89d7376..af15a84 100644 --- a/src/ui/controls/FUiCtrl_Frame.cpp +++ b/src/ui/controls/FUiCtrl_Frame.cpp @@ -816,6 +816,7 @@ _Frame::SetFocusControl(const _Control* pControl , bool on) SysAssert(pControlMgr); _Form* pForm = null; _Form* pCurrentForm = GetCurrentForm(); + _Frame* pFrame = null; const _Control* pTempControl = pControl; bool isCurrentForm = false; @@ -825,7 +826,15 @@ _Frame::SetFocusControl(const _Control* pControl , bool on) if (pForm) { - break; + pFrame = dynamic_cast<_Frame*>(pForm->GetParent()); + if (pFrame) + { + break; + } + else + { + pTempControl = pTempControl->GetParent(); + } } else { @@ -903,13 +912,22 @@ _Frame::SetFocusTraversalControl(_Control* pControl) { _Form* pForm = null; _Control* pTempControl = pControl; + _Frame* pFrame = null; while(pTempControl) { pForm = dynamic_cast<_Form*>(const_cast<_Control*>(pTempControl)); if (pForm) { - break; + pFrame = dynamic_cast<_Frame*>(pForm->GetParent()); + if (pFrame) + { + break; + } + else + { + pTempControl = pTempControl->GetParent(); + } } else {