Fixed destroying the AppWidgetPopup
authorChoi Munseok <ms47.choi@samsung.com>
Tue, 9 Jul 2013 12:36:55 +0000 (21:36 +0900)
committerChoi Munseok <ms47.choi@samsung.com>
Tue, 9 Jul 2013 12:36:55 +0000 (21:36 +0900)
Change-Id: I54ab9830e38b1235466e5a7fbf87783b41b71d35
Signed-off-by: Choi Munseok <ms47.choi@samsung.com>
src/FShell_AppWidgetFrame.cpp
src/FShell_AppWidgetLayer.cpp
src/FShell_AppWidgetPopup.cpp

index c30cec2..0fec55c 100644 (file)
@@ -63,6 +63,7 @@ _AppWidgetFrame::~_AppWidgetFrame(void)
 
        __pAppWidgetLayer = null;
        __pAppWidgetFrameRootVisualElement = null;
+       SetVisualElement(null);
 }
 
 _AppWidgetFrame*
index 85b9418..70cb002 100644 (file)
@@ -33,6 +33,7 @@
 #include <FBase_StringConverter.h>
 #include <FGrpRectangle.h>
 #include <FUiAnim_DisplayManager.h>
+#include "FUiAnim_RootVisualElement.h"
 #include "FUi_AccessibilityManager.h"
 #include "FUi_Window.h"
 #include "FShell_AppWidgetBuffer.h"
@@ -123,12 +124,26 @@ _AppWidgetLayer::_AppWidgetLayer(const Tizen::Base::String& providerId, const Fl
 
 _AppWidgetLayer::~_AppWidgetLayer(void)
 {
+       if(_pRootVisualElement)
+       {
+               _DisplayManager* pDisplayManager = _DisplayManager::GetInstance();
+               if (pDisplayManager)
+               {
+                       pDisplayManager->UnregisterRoot(*_pRootVisualElement);
+               }
+               _pRootVisualElement->SetNativeLayer(null);
+               _pRootVisualElement->Destroy();
+               _EflLayer::_pRootVisualElement = null;
+               _NativeLayer::_pRootVisualElement = null;
+       }
+
        __pRenderBuffer = null;
        __pTempBuffer = null;
        __pixmapId = -1;
 
 //     __pEcoreEvas.release(); // temp
        _pEcoreEvas = null;
+       _pWindow = null;
 }
 
 result
index eb960e8..866b457 100644 (file)
@@ -148,6 +148,7 @@ _AppWidgetPopup::~_AppWidgetPopup(void)
 
        __pAppWidgetPopupLayer = null;
        __pAppWidgetPopupRootVisualElement = null;
+       SetVisualElement(null);
 }
 
 _AppWidgetPopup*