fixed the issue multiple push on double click.
authorshilpa singh <shilpa.singh@samsung.com>
Tue, 28 Sep 2010 06:31:56 +0000 (15:31 +0900)
committershilpa singh <shilpa.singh@samsung.com>
Tue, 28 Sep 2010 06:31:56 +0000 (15:31 +0900)
src/lib/elm_navigationbar.c
src/lib/elm_pager.c

index 2668c1a..2953fbe 100644 (file)
@@ -564,6 +564,7 @@ elm_navigationbar_push(Evas_Object *obj,
        if (!wd) return;
 
        it = _check_item_is_added(obj, content);
+       if (it) return;
        if (!it) it = ELM_NEW(Item); 
        if (!it) return;
        
@@ -731,6 +732,7 @@ elm_navigationbar_to_content_pop(Evas_Object *obj,
                                                                                Evas_Object *content)
 {
        ELM_CHECK_WIDTYPE(obj, widtype);
+       if(!content) return;
        Widget_Data *wd = elm_widget_data_get(obj);
        Eina_List *ll;
        Item *it = NULL;
index 992ccca..6310be7 100644 (file)
@@ -97,7 +97,7 @@ _changed_size_hints(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
 }
 
 static void
-_eval_top(Evas_Object *obj, Eina_Bool push)
+_eval_top(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
    Eina_Bool animate=EINA_TRUE;
@@ -128,32 +128,16 @@ _eval_top(Evas_Object *obj, Eina_Bool push)
          {
             animate = EINA_FALSE;
          }
-       wd->top = ittop;
-       o = wd->top->base;
-       evas_object_show(o);
        wd->oldtop = wd->top;
        wd->top = ittop;
        o = wd->top->base;
        evas_object_show(o);
-
        if (!animate)
                edje_object_signal_emit(o, "elm,action,show,noanimate", "elm");
        else if (wd->oldtop && wd->oldtop->popme)
            edje_object_signal_emit(o, "elm,action,show", "elm");
        else
            edje_object_signal_emit(o, "elm,action,push", "elm");
-       
-       if(animate)
-               {
-                       if(push)
-                               {
-                                       edje_object_signal_emit(o, "elm,action,show,push", "elm");
-                               }
-                       else
-                               {
-                                       edje_object_signal_emit(o, "elm,action,show,pop", "elm");
-                               }
-               }
        onshow = edje_object_data_get(o, "onshow");
        if (onshow)
          {
@@ -192,7 +176,7 @@ _sub_del(void *data, Evas_Object *obj __UNUSED__, void *event_info)
             evas_object_event_callback_del_full
                (sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, it);
             evas_object_del(it->base);
-            _eval_top(it->obj, EINA_FALSE);
+            _eval_top(it->obj);
             free(it);
             return;
          }
@@ -307,7 +291,7 @@ elm_pager_content_push(Evas_Object *obj, Evas_Object *content)
    edje_object_size_min_calc(it->base, &it->minw, &it->minh);
    evas_object_show(it->content);
    wd->stack = eina_list_append(wd->stack, it);
-   _eval_top(obj, EINA_TRUE);
+   _eval_top(obj);
    _sizing_eval(obj);
 }
 
@@ -406,7 +390,7 @@ elm_pager_to_content_pop(Evas_Object *obj, Evas_Object *content)
                                ll = ll->prev;
                        }
       }
-   _eval_top(it->obj, EINA_FALSE);
+   _eval_top(it->obj);
 }
 
 /**
@@ -435,7 +419,7 @@ elm_pager_content_promote(Evas_Object *obj, Evas_Object *content)
          {
             wd->stack = eina_list_remove_list(wd->stack, l);
             wd->stack = eina_list_append(wd->stack, it);
-            _eval_top(obj, EINA_FALSE);
+            _eval_top(obj);
             return;
          }
      }