From 1e9ef8aa5baff397f65efcb42ffacb524535de27 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Mon, 20 May 2013 20:42:38 +0900 Subject: [PATCH] elemenatry/naviframe - don't pop the view if the freeze_event is enabled and some views are alreadying popping. --- legacy/elementary/src/lib/elc_naviframe.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/legacy/elementary/src/lib/elc_naviframe.c b/legacy/elementary/src/lib/elc_naviframe.c index 349b5fb942..490f60820c 100644 --- a/legacy/elementary/src/lib/elc_naviframe.c +++ b/legacy/elementary/src/lib/elc_naviframe.c @@ -1341,8 +1341,9 @@ _elm_naviframe_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) } static void -_elm_naviframe_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +_elm_naviframe_smart_event(Eo *obj, void *_pd, va_list *list) { + Elm_Naviframe_Smart_Data *sd = _pd; Evas_Object *source = va_arg(*list, Evas_Object *); Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type); Evas_Event_Key_Down *ev = va_arg(*list, Evas_Event_Key_Down *); @@ -1359,13 +1360,15 @@ _elm_naviframe_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list) eo_do(obj, elm_obj_naviframe_top_item_get((Elm_Object_Item **)&it)); if (!it) return; + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + if (ret) *ret = EINA_TRUE; + + if (sd->freeze_events && sd->popping) return; + //FIXME: Replace this below code to elm_naviframe_item_pop() at elm 2.0. ///Leave for compatibility. 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; - if (ret) *ret = EINA_TRUE; } static void