elemenatry/naviframe - don't pop the view if the freeze_event is enabled and some...
authorChunEon Park <hermet@hermet.pe.kr>
Mon, 20 May 2013 11:42:38 +0000 (20:42 +0900)
committerChunEon Park <hermet@hermet.pe.kr>
Mon, 20 May 2013 11:43:22 +0000 (20:43 +0900)
src/lib/elc_naviframe.c

index 349b5fb..490f608 100644 (file)
@@ -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