Fix b/s
authorHeeJu Kang <mobum.kang@samsung.com>
Mon, 24 Jun 2013 23:40:33 +0000 (08:40 +0900)
committerHeeJu Kang <mobum.kang@samsung.com>
Mon, 24 Jun 2013 23:40:33 +0000 (08:40 +0900)
Change-Id: I36d79b50e8d42b2e37176ab64a83151428ddf909
Signed-off-by: HeeJu Kang <mobum.kang@samsung.com>
src/FShell_AppWidgetView.cpp
src/FShell_AppWidgetView.h

index 26930b5..16e06fa 100644 (file)
@@ -77,6 +77,7 @@ _AppWidgetView::_AppWidgetView(void)
        , __updated(false)
        , __pixmap(-1)
        , __pAppWidgetViewEventListenerList(new (std::nothrow) LinkedListT<_IAppWidgetViewEventListener*>)
+       , __destroyed(false)
 {
        __pAppWidgetViewManager = _AppWidgetViewManager::GetInstance();
        SysTryReturnVoidResult(NID_SHELL, __pAppWidgetViewManager, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
@@ -84,6 +85,8 @@ _AppWidgetView::_AppWidgetView(void)
 
 _AppWidgetView::~_AppWidgetView(void)
 {
+       __destroyed = true;
+
        __pAppWidgetViewManager->RemoveAppWidgetView(this);
 
        if (__pAppWidgetPopupView)
@@ -477,12 +480,20 @@ _AppWidgetView::OnVisualElementAnimationStarted(const Tizen::Ui::Animations::Vis
 void
 _AppWidgetView::OnVisualElementAnimationFinished(const Tizen::Ui::Animations::VisualElementAnimation& animation, const Tizen::Base::String& keyName, Tizen::Ui::Animations::VisualElement& target, bool completedNormally)
 {
+       if (__destroyed)
+       {
+               SysLog(NID_SHELL, "Destroyed.");
+               return;
+       }
+
        if (keyName == POPUP_CLOSE_ANIMATION)
        {
                SysLog(NID_SHELL, "Close AppWidgetPopup");
-               __pAppWidgetPopupView->Close();
-               __pAppWidgetPopupView.reset(null);
-//             FireAppWidgetPopupEvent(false);
+               if (__pAppWidgetPopupView.get())
+               {
+                       __pAppWidgetPopupView->Close();
+                       __pAppWidgetPopupView.reset(null);
+               }
        }
 }
 
index ce940c4..691ab68 100644 (file)
@@ -188,6 +188,7 @@ private:
        };
        std::unique_ptr<Tizen::Ui::Animations::VisualElement, _VisualElementDeleter> __pPixmapVisualElement;
        std::unique_ptr<Tizen::Ui::Animations::VisualElementSurface> __pVisualElementSurface;
+       bool __destroyed;
 }; // _AppWidgetView
 
 }} // Tizen::Shell