From 0b28611a988c629242dbd0cdfa7ed9fde72c75d9 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Mon, 20 May 2013 20:45:45 +0900 Subject: [PATCH] elemenatry/naviframe - don't pop the view if the freeze_event is enabled and some views are alreadying popping. commit f8df137bee5aba9602689b902c7fae4577d8008b Author: ChunEon Park @hermet.pe.kr> Date: Mon May 20 20:42:38 2013 +0900 --- src/lib/elc_naviframe.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c index 0a94bf9..770d9d2 100644 --- a/src/lib/elc_naviframe.c +++ b/src/lib/elc_naviframe.c @@ -1524,6 +1524,7 @@ _elm_naviframe_smart_event(Evas_Object *obj, { Elm_Naviframe_Item *it; Evas_Event_Key_Down *ev = event_info; + ELM_NAVIFRAME_DATA_GET(obj, sd); if (elm_widget_disabled_get(obj)) return EINA_FALSE; if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE; @@ -1534,11 +1535,12 @@ _elm_naviframe_smart_event(Evas_Object *obj, it = (Elm_Naviframe_Item *) elm_naviframe_top_item_get(obj); if (!it) return EINA_FALSE; + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + if (sd->freeze_events && sd->popping) return EINA_TRUE; + if (it->title_prev_btn) evas_object_smart_callback_call(it->title_prev_btn, SIG_CLICKED, NULL); - ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; - return EINA_TRUE; } #else @@ -1551,6 +1553,7 @@ _elm_naviframe_smart_event(Evas_Object *obj, { Elm_Naviframe_Item *it; Evas_Event_Key_Down *ev = event_info; + ELM_NAVIFRAME_DATA_GET(obj, sd); if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE; if (elm_widget_disabled_get(obj)) return EINA_FALSE; @@ -1560,9 +1563,10 @@ _elm_naviframe_smart_event(Evas_Object *obj, it = (Elm_Naviframe_Item *) elm_naviframe_top_item_get(obj); if (!it) return EINA_FALSE; - elm_naviframe_item_pop(obj); - ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + if (sd->freeze_events && sd->popping) return EINA_TRUE; + + elm_naviframe_item_pop(obj); return EINA_TRUE; } -- 2.7.4