, __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.");
_AppWidgetView::~_AppWidgetView(void)
{
+ __destroyed = true;
+
__pAppWidgetViewManager->RemoveAppWidgetView(this);
if (__pAppWidgetPopupView)
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);
+ }
}
}