Bug Fix when remove control
authorkeonpyo.kong <keonpyo.kong@samsung.com>
Thu, 27 Jun 2013 05:27:59 +0000 (14:27 +0900)
committerkeonpyo.kong <keonpyo.kong@samsung.com>
Thu, 27 Jun 2013 07:48:10 +0000 (16:48 +0900)
Change-Id: Ia362ee5a17e6d4af1cfe24e053ac9e6ce4f212f4
Signed-off-by: keonpyo.kong <keonpyo.kong@samsung.com>
apply code review

Change-Id: I05d5d053b34f5b1a741da1b8e4acb7537c2e3ae4
Signed-off-by: keonpyo.kong <keonpyo.kong@samsung.com>
src/ui/FUi_Control.cpp
src/ui/FUi_FocusManagerImpl.cpp
src/ui/controls/FUiCtrl_ButtonPresenter.cpp
src/ui/controls/FUiCtrl_CheckButtonPresenter.cpp
src/ui/inc/FUi_Control.h

index e9dbcc7..c69264d 100644 (file)
@@ -1593,6 +1593,11 @@ _Control::CallOnDetachingFromMainTree(_Control& control)
                {
                        pTop->SetFocusControl(&control, false);
                }
+               _Control* pFocusTraversalControl = pTop->GetFocusTraversalControl(this);
+               if ((&control) == pFocusTraversalControl)
+               {
+                       pTop->SetFocusTraversalControl(this);
+               }
        }
 
        if (!__isPostOrderTraversal)
@@ -1880,16 +1885,6 @@ _Control::IsFocusNavigateEnabled(void) const
        return __isNavigatable;
 }
 
-void
-_Control::SetFocusModeStateEnabled(bool enable)
-{
-       __isFocusMode = enable;
-       if (enable == false)
-       {
-               OnFocusModeStateChanged();
-       }
-}
-
 bool
 _Control::IsFocusModeStateEnabled(void) const
 {
@@ -2058,7 +2053,6 @@ _Control::DetachChild(_Control& child)
        ClearLastResult();
 
        SysAssert(GetLastResult() == E_SUCCESS);
-
        UpdateFocusList();
        return E_SUCCESS;
 }
@@ -3821,17 +3815,6 @@ _Control::~_Control(void)
                __pFont = null;
        }
 
-       _Window* pWindow = GetRootWindow();
-
-       if (pWindow)
-       {
-               _Control* pFocusTraversalControl = pWindow->GetFocusTraversalControl(this);
-               if (pFocusTraversalControl == this)
-               {
-                       pWindow->SetFocusTraversalControl(null);
-               }
-       }
-
 //     Dangerous: it clears last result and log in catch block.
 //     ClearLastResult();
 }
index 1f8dc19..13f1ff1 100644 (file)
@@ -278,6 +278,12 @@ _FocusManagerImpl::StartFocusTraversal(_Control* pControl, FocusDirection focusD
        }
 
        bool focusMode = pControl->IsFocusModeStateEnabled();
+       if (__isFocusMode == false)
+       {
+               __isFocusMode = true;
+               pControl->OnFocusModeStateChanged();
+       }
+
        if (focusMode == false && pControl->IsFocused())
        {
                if (IsFocusable(pControl))
@@ -287,7 +293,6 @@ _FocusManagerImpl::StartFocusTraversal(_Control* pControl, FocusDirection focusD
                                pTop->SetFocusTraversalControl(pControl);
                        }
                        pControl->DrawFocus();
-                       __isFocusMode = true;
                        return;
                }
        }
@@ -385,6 +390,7 @@ _FocusManagerImpl::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
        _KeyCode keyCode = keyInfo.GetKeyCode();
        FocusDirection focusDirection = FOCUS_DIRECTION_DOWNWARD;
        _Control* pControl = const_cast<_Control*> (&source);
+
        switch(keyCode)
        {
        case _KEY_TAB :
@@ -434,7 +440,6 @@ _FocusManagerImpl::OnTouchPressed(const _Control& source, const _TouchInfo& touc
                {
                        pFocusTraversalControl->OnFocusModeStateChanged();
                        pFocusTraversalControl->RemoveFocusRing();
-                       pTop->SetFocusTraversalControl(null);
                }
        }
 
index cb1bbfc..79e44fc 100644 (file)
@@ -1152,13 +1152,10 @@ _ButtonPresenter::OnAncestorEnableStateChanged(const _Control& control)
 void
 _ButtonPresenter::OnDrawFocus(void)
 {
-       if (__pButton->IsFocusModeStateEnabled() == false)
+       if (__pButton->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
        {
-               if (__pButton->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
-               {
-                       __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
-                       __pButton->Invalidate();
-               }
+               __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
+               __pButton->Invalidate();
        }
 
        return;
index 80ee268..247604d 100644 (file)
@@ -2421,15 +2421,11 @@ _CheckButtonPresenter::OnTimerExpired(Timer& timer)
 void
 _CheckButtonPresenter::OnDrawFocus(void)
 {
-       if (__pCheckButton->IsFocusModeStateEnabled() == false)
+       __focusPrevStatus = __pCheckButton->GetCheckButtonStatus();
+       if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED)
        {
-               __focusPrevStatus = __pCheckButton->GetCheckButtonStatus();
-
-               if (__pCheckButton->GetCheckButtonStatus() != _CHECK_BUTTON_STATUS_DISABLED)
-               {
-                       __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
-                       __pCheckButton->Invalidate();
-               }
+               __pCheckButton->SetCheckButtonStatus(_CHECK_BUTTON_STATUS_HIGHLIGHTED);
+               __pCheckButton->Invalidate();
        }
 
        return;
index ee5467f..f12d80c 100644 (file)
@@ -430,7 +430,6 @@ public:
        Tizen::Base::Collection::IListT<_Control*>* GetFocusListN(void) const;
        void RemoveFocusRing(void);
        bool HasFocusRing(void);
-       void SetFocusModeStateEnabled(bool enable);
        bool IsFocusModeStateEnabled(void) const;
        void SetFocusNavigateEnabled(bool enable);
        bool IsFocusNavigateEnabled(void) const;