fix disabled item moving
authorMyung Jin Kim <critical.kim@samsung.com>
Mon, 29 Apr 2013 16:46:22 +0000 (01:46 +0900)
committerMyung Jin Kim <critical.kim@samsung.com>
Mon, 29 Apr 2013 16:46:22 +0000 (01:46 +0900)
Change-Id: Ic34b1b18b1f7d0053232f87ea8b236ca72608aab

src/ui/controls/FUiCtrl_Toolbar.cpp

index 441fd6f..93344b3 100644 (file)
@@ -1202,9 +1202,18 @@ _Toolbar::MoveItem(const int srcIndex, const int destIndex)
 
        _Button* pSrcButton = null;
        pSrcButton = GetItem(srcIndex);
+       SysTryReturnResult(NID_UI_CTRL, pSrcButton, E_INVALID_STATE, "[E_INVALID_ARG] No item at the pressed index.");
 
        _Button* pDestButton = null;
        pDestButton = GetItem(destIndex);
+       SysTryReturnResult(NID_UI_CTRL, pDestButton, E_INVALID_STATE, "[E_INVALID_ARG] No item at the released index.");
+
+       if (pDestButton->GetButtonStatus() == _BUTTON_STATUS_DISABLED)
+       {
+               SetItemSelected(GetSelectedItemIndex(), true, false);
+
+               return E_INVALID_OPERATION;
+       }
 
        __pItems.erase(__pItems.begin() + destIndex);
        __pItems.insert(__pItems.begin() + destIndex, pSrcButton);
@@ -1214,7 +1223,11 @@ _Toolbar::MoveItem(const int srcIndex, const int destIndex)
 
        for (int i = 0; i < __itemCount; i++)
        {
-               __pItems.at(i)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+               if (__pItems.at(i)->GetButtonStatus() != _BUTTON_STATUS_DISABLED)
+               {
+                       __pItems.at(i)->SetButtonStatus(_BUTTON_STATUS_NORMAL);
+               }
+
                _AccessibilityElement* pElement = __pItems.at(i)->GetAccessibilityContainer()->GetChildElement(0);
                if (pElement)
                {