Fix problems on scene trasition with rotation callback. - Change the internal data...
authorSeungWon Lee <lsw2000.lee@samsung.com>
Fri, 3 May 2013 01:51:09 +0000 (10:51 +0900)
committerSeungWon Lee <lsw2000.lee@samsung.com>
Fri, 3 May 2013 01:51:09 +0000 (10:51 +0900)
N_SE-37244, 37105,  37032

Change-Id: I38d4c522c8e23e66c68e33c3f1420e3d72d00803
Signed-off-by: SeungWon Lee <lsw2000.lee@samsung.com>
src/ui/scenes/FUiScenes_SceneManagerImpl.cpp

index b27ecf0..e0a84b2 100644 (file)
@@ -783,20 +783,23 @@ _SceneManagerImpl::DestroyScene(const SceneId& sceneId)
                }
        }
 
+       //Remove Scene
+       RemoveSceneFromContainer(sceneId);
+
        if (isFormScene)
-       {       // 1. Remove Form control(Associated on Scene) from Frame
-               RemoveControlFromFrame(*pScene->GetForm());
-               // 2. Remove Form from Form container
+       {       // 1. Remove Form from Form container
                RemoveFormFromFormContainer(pScene->GetFormId());
+               // 2. Remove Form control(Associated on Scene) from Frame
+               RemoveControlFromFrame(*pScene->GetForm());
        }
        else
        if (isLastPanel)
        {       // 1. Remove Panel from Panel container.
                RemovePanelFromPanelContainer(pScene);
-               // 2. Remove Form control from Frame. (Associated Panel automatically removed by Ui)
-               RemoveControlFromFrame(*pScene->GetForm());
-               // 3. Remove Form from Form container.
+               // 2. Remove Form from Form container.
                RemoveFormFromFormContainer(pScene->GetFormId());
+               // 3. Remove Form control from Frame. (Associated Panel automatically removed by Ui)
+               RemoveControlFromFrame(*pScene->GetForm());
        }
        else
        {       // 1. Remove Panel from Panel container.
@@ -813,9 +816,6 @@ _SceneManagerImpl::DestroyScene(const SceneId& sceneId)
                        RemoveControlFromForm(*pScene->GetForm(), *pScene->GetPanel());
                }
        }
-
-       // Finally remove Scene
-       RemoveSceneFromContainer(sceneId);
        delete pScene;
 
        return E_SUCCESS;