Fixed N_SE-39526; changed to use Cancel event in item and grid.
authorclone <ingyou.park@samsung.com>
Mon, 10 Jun 2013 04:40:27 +0000 (13:40 +0900)
committerclone <ingyou.park@samsung.com>
Mon, 10 Jun 2013 04:40:27 +0000 (13:40 +0900)
Change-Id: I2d72b29284519a9a5334436a091044a9736854b1
Signed-off-by: clone <ingyou.park@samsung.com>
src/ui/controls/FUiCtrl_ContextMenu.cpp
src/ui/controls/FUiCtrl_ContextMenuGridPresenter.cpp
src/ui/controls/FUiCtrl_ContextMenuItem.cpp
src/ui/controls/FUiCtrl_ContextMenuListPresenter.cpp
src/ui/inc/FUiCtrl_ContextMenu.h
src/ui/inc/FUiCtrl_ContextMenuGridPresenter.h
src/ui/inc/FUiCtrl_ContextMenuItem.h
src/ui/inc/FUiCtrl_ContextMenuListPresenter.h
src/ui/inc/FUiCtrl_IContextMenuPresenter.h

index 74ffbb2..2ab89db 100644 (file)
@@ -206,11 +206,12 @@ _ContextMenu::Install(void)
 
        if (__style == CONTEXT_MENU_CORE_STYLE_LIST)
        {
-                       _IContextMenuPresenter* pPresenter = new (std::nothrow) _ContextMenuListPresenter(this);
-                       SysTryReturnResult(NID_UI_CTRL, pPresenter != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
+               _IContextMenuPresenter* pPresenter = new (std::nothrow) _ContextMenuListPresenter(this);
+               SysTryReturnResult(NID_UI_CTRL, pPresenter != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
+
+               SetPresenter(*pPresenter);
 
-                       SetPresenter(*pPresenter);
-                       r = pPresenter->Install();
+               r = pPresenter->Install();
        }
        else
        {
@@ -311,7 +312,8 @@ _ContextMenu::OnAttachedToMainTree(void)
                __pContextMenuPresenter->CalculateShowItemCount();
        }
 
-       __pContextMenuPresenter->CalculateWindowRect();
+       r = __pContextMenuPresenter->CalculateWindowRect();
+       SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, E_SYSTEM, "[%s] Propagating.", GetErrorMessage(GetLastResult()));
 
        r = Open();
 
@@ -1172,6 +1174,12 @@ _ContextMenu::OnTouchReleased(const _Control& source, const _TouchInfo& touchinf
        return __pContextMenuPresenter->OnTouchReleased(source, touchinfo);
 }
 
+_UiTouchEventDelivery
+_ContextMenu::OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
+{
+       return __pContextMenuPresenter->OnPreviewTouchCanceled(source, touchinfo);
+}
+
 bool
 _ContextMenu::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
 {
index e01f99a..813fd52 100644 (file)
@@ -1531,9 +1531,18 @@ _ContextMenuGridPresenter::OnTouchReleased(const _Control& source, const _TouchI
        return true;
 }
 
+_UiTouchEventDelivery
+_ContextMenuGridPresenter::OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
+{
+       return _UI_TOUCH_EVENT_DELIVERY_FORCED_YES;
+}
+
 bool
 _ContextMenuGridPresenter::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
 {
+       __selectedIndex = -1;
+       __pressedIndex = -1;
+
        return true;
 }
 
index 4a9223f..95cc6ab 100644 (file)
@@ -547,6 +547,19 @@ _ContextMenuItem::OnTouchReleased(const _Control& source, const _TouchInfo& touc
        return false;
 }
 
+_UiTouchEventDelivery
+_ContextMenuItem::OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
+{
+       return _UI_TOUCH_EVENT_DELIVERY_FORCED_YES;
+}
+
+bool
+_ContextMenuItem::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
+{
+       SetAndInvalidate(false);
+
+       return false;
+}
 
 void
 _ContextMenuItem::TouchMoved(const _Control& source, const _TouchInfo& touchinfo)
index 55b9320..fada7a7 100644 (file)
@@ -1050,10 +1050,17 @@ _ContextMenuListPresenter::OnTouchMoved(const _Control& source, const _TouchInfo
        return true;
 }
 
+_UiTouchEventDelivery
+_ContextMenuListPresenter::OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
+{
+       return _UI_TOUCH_EVENT_DELIVERY_FORCED_YES;
+}
+
 bool
 _ContextMenuListPresenter::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
 {
        __pModel->ResetAllItem();
+       __selectedIndex = -1;
 
        return true;
 }
index c7631c5..04c2db7 100644 (file)
@@ -191,6 +191,7 @@ public:
        virtual _UiTouchEventDelivery OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
+       virtual _UiTouchEventDelivery OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
 
        virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
index d3eb659..42b0899 100644 (file)
@@ -71,6 +71,7 @@ public:
        virtual _UiTouchEventDelivery OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
+       virtual _UiTouchEventDelivery OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
 
        virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
index 447c3be..d9e0108 100644 (file)
@@ -126,10 +126,12 @@ public:
        virtual _UiTouchEventDelivery OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
+       virtual _UiTouchEventDelivery OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
 
        virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
        virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
+       virtual bool OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
 
        virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
        virtual void OnFontInfoRequested(unsigned long& style, float& size);
index f65194d..f387e13 100644 (file)
@@ -71,6 +71,7 @@ public:
        virtual _UiTouchEventDelivery OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
        virtual _UiTouchEventDelivery OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
+       virtual _UiTouchEventDelivery OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
 
        virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
        virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
index 58edd6b..8f65119 100644 (file)
@@ -81,6 +81,7 @@ public:
        virtual _UiTouchEventDelivery OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo) = 0;
        virtual _UiTouchEventDelivery OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo) = 0;
        virtual _UiTouchEventDelivery OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo) = 0;
+       virtual _UiTouchEventDelivery OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo) = 0;
 
        virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo) = 0;
        virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo) = 0;