Powerkey and home button handling in option and context menu
authorvipul <vipul.kumar@samsung.com>
Tue, 16 Jul 2013 04:40:13 +0000 (10:10 +0530)
committervipul <vipul.kumar@samsung.com>
Tue, 16 Jul 2013 04:44:10 +0000 (10:14 +0530)
Signed-off-by: vipul <vipul.kumar@samsung.com>
Change-Id: I78cb9bc53a3a709ec9bf3aa795c397b69c2b3bb8

src/ui/controls/FUiCtrl_ContextMenu.cpp
src/ui/controls/FUiCtrl_OptionMenu.cpp

index c3e16af..ed08800 100644 (file)
@@ -92,18 +92,15 @@ _ContextMenu::_ContextMenu(const FloatPoint& point, enum ContextMenuCoreStyle st
 
 _ContextMenu::~_ContextMenu(void)
 {
-       if (__pCurrentFrame)
-       {
-               __pCurrentFrame->RemoveFrameEventListener(*this);
-               __pCurrentFrame = null;
-       }
-
        if (__isAttachedToMainTree && GetOwner() != null)
        {
                GetOwner()->UnlockInputEvent();
        }
 
-       if (__pScrollPanel) {
+       __pCurrentFrame = null;
+
+       if (__pScrollPanel)
+       {
                __pScrollPanel->DetachAllChildren();
                DetachChild(*__pScrollPanel);
                delete __pScrollPanel;
@@ -306,8 +303,6 @@ _ContextMenu::OnAttachedToMainTree(void)
                __pCurrentFrame = dynamic_cast<_Frame*>(_ControlManager::GetInstance()->GetCurrentFrame());
                SysTryReturn(NID_UI_CTRL, __pCurrentFrame != null, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Current frame instance is not available.");
 
-               __pCurrentFrame->AddFrameEventListener(*this);
-
                _Form* pForm = __pCurrentFrame->GetCurrentForm();
                pForm != null ? SetOwner(pForm) : SetOwner(__pCurrentFrame);
 
@@ -320,6 +315,11 @@ _ContextMenu::OnAttachedToMainTree(void)
                pOwner->LockInputEvent();
        }
 
+       if (__pCurrentFrame != null)
+       {
+               __pCurrentFrame->AddFrameEventListener(*this);
+       }
+
        __layout = pOwner->GetOrientation();
 
        _Window* pOwnerWindow = pOwner->GetRootWindow();
@@ -433,6 +433,11 @@ _ContextMenu::OnDetachingFromMainTree(void)
 
        ReleaseTouchCapture();
 
+       if (__pCurrentFrame)
+       {
+               __pCurrentFrame->RemoveFrameEventListener(*this);
+       }
+
        _Control* pOwner = GetOwner();
        if (pOwner != null)
        {
index f4b574c..342e7ac 100644 (file)
@@ -89,17 +89,13 @@ _OptionMenu::_OptionMenu(void)
 
 _OptionMenu::~_OptionMenu(void)
 {
-       if (__pCurrentFrame)
-       {
-               __pCurrentFrame->RemoveFrameEventListener(*this);
-               __pCurrentFrame = null;
-       }
-
        if (__isAttachedToMainTree && GetOwner() != null)
        {
                GetOwner()->UnlockInputEvent();
        }
 
+       __pCurrentFrame = null;
+
        if (__pScrollPanel)
        {
                __pScrollPanel->DetachAllChildren();
@@ -450,8 +446,6 @@ _OptionMenu::OnAttachedToMainTree(void)
                __pCurrentFrame = dynamic_cast<_Frame*>(_ControlManager::GetInstance()->GetCurrentFrame());
                SysTryReturn(NID_UI_CTRL, __pCurrentFrame != null, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Current frame instance is not available.");
 
-               __pCurrentFrame->AddFrameEventListener(*this);
-
                _Form* pForm = __pCurrentFrame->GetCurrentForm();
                pForm != null ? SetOwner(pForm) : SetOwner(__pCurrentFrame);
 
@@ -462,6 +456,11 @@ _OptionMenu::OnAttachedToMainTree(void)
                pOwner->LockInputEvent();
        }
 
+       if (__pCurrentFrame != null)
+       {
+               __pCurrentFrame->AddFrameEventListener(*this);
+       }
+
        __layout = pOwner->GetOrientation();
 
        _Window* pOwnerWindow = pOwner->GetRootWindow();
@@ -525,6 +524,11 @@ _OptionMenu::OnDetachingFromMainTree(void)
 {
        ReleaseTouchCapture();
 
+       if (__pCurrentFrame)
+       {
+               __pCurrentFrame->RemoveFrameEventListener(*this);
+       }
+
        _Control* pOwner = GetOwner();
        if (pOwner != null)
        {