Fixed crash in _Indicator::OnHitTest()
authorKeuckdo Bang <keuckdo.bang@samsung.net>
Fri, 12 Jul 2013 10:06:42 +0000 (19:06 +0900)
committerKeuckdo Bang <keuckdo.bang@samsung.net>
Fri, 12 Jul 2013 10:06:42 +0000 (19:06 +0900)
Change-Id: I33565a0aaf1f5102d62cdba547405330a9cdfcdb

src/ui/controls/FUiCtrl_Form.cpp
src/ui/controls/FUiCtrl_Frame.cpp
src/ui/controls/FUiCtrl_Indicator.cpp
src/ui/inc/FUiCtrl_Form.h

index 542cb94..9309e96 100644 (file)
@@ -3609,4 +3609,12 @@ _Form::SetFocusTraversalControl(_Control* pControl)
 {
        __pFocusTraversalControl = pControl;
 }
+
+void
+_Form::OnFormActivated(void)
+{
+       AddIndicatorObject();
+}
+
+
 }}} // Tizen::Ui::Controls
index 3656ba7..4d7d81f 100644 (file)
@@ -362,6 +362,7 @@ _Frame::SetCurrentForm(const _Form* pForm)
        }
 
        pNewForm->SetVisibleState(true);
+       pNewForm->OnFormActivated();
        _Control* pFocus = pNewForm->GetFocusControl();
        if (pFocus)
        {
index 6ff33ea..e974fee 100644 (file)
@@ -681,20 +681,23 @@ _Indicator::OnHitTest(const Tizen::Graphics::FloatPoint& point)
                return HIT_TEST_NOWHERE;
        }
 
-       _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*this->__pCurrentVisualElement);
        Evas_Object* pImageObject = null;
-       if (pImpl)
+       if (this->__pCurrentVisualElement)
        {
-               _EflNode* pNativeNode = dynamic_cast< _EflNode* >(pImpl->GetNativeNode());
-               if (pNativeNode)
+               _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*this->__pCurrentVisualElement);
+               if (pImpl)
                {
-                       VisualElementSurface* pPortraitSurface = pNativeNode->GetSurface();
-                       if (pPortraitSurface)
+                       _EflNode* pNativeNode = dynamic_cast< _EflNode* >(pImpl->GetNativeNode());
+                       if (pNativeNode)
                        {
-                               _EflVisualElementSurfaceImpl* pSurface = dynamic_cast<_EflVisualElementSurfaceImpl*>(_VisualElementSurfaceImpl::GetInstance(*pPortraitSurface));
-                               if (pSurface)
+                               VisualElementSurface* pPortraitSurface = pNativeNode->GetSurface();
+                               if (pPortraitSurface)
                                {
-                                       pImageObject = (Evas_Object*)pSurface->GetNativeHandle();
+                                       _EflVisualElementSurfaceImpl* pSurface = dynamic_cast<_EflVisualElementSurfaceImpl*>(_VisualElementSurfaceImpl::GetInstance(*pPortraitSurface));
+                                       if (pSurface)
+                                       {
+                                               pImageObject = (Evas_Object*)pSurface->GetNativeHandle();
+                                       }
                                }
                        }
                }
index 17a95fa..795b73d 100644 (file)
@@ -227,6 +227,7 @@ public:
        virtual void OnBoundsChanged(void);
        virtual void UpdateClientBounds(const Tizen::Graphics::FloatDimension& size, Tizen::Graphics::FloatRectangle& clientBounds);
        virtual void OnVisibleStateChanged(void);
+       void OnFormActivated(void);
 
 // Focus UI
        Tizen::Base::Collection::IListT<_Control*>* GetFocusList(void) const;