summaryrefslogtreecommitdiff
path: root/legacy
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2011-10-27 06:01:50 +0000
committerChunEon Park <hermet@hermet.pe.kr>2011-10-27 06:01:50 +0000
commit131f31bef6ebdf81c3bd3ec0be6850028a632b86 (patch)
tree73abad907967cdd07e95b381dae05094cf0ef11c /legacy
parent0ff8c40ad0d3a17a103fc09263ed7c1719f8fbac (diff)
elementary/naviframe - fixed to prevent multiple clicked events for the backbutton
SVN revision: 64425
Diffstat (limited to 'legacy')
-rw-r--r--legacy/elementary/src/lib/elc_naviframe.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/legacy/elementary/src/lib/elc_naviframe.c b/legacy/elementary/src/lib/elc_naviframe.c
index c14f9cc66f..3629544deb 100644
--- a/legacy/elementary/src/lib/elc_naviframe.c
+++ b/legacy/elementary/src/lib/elc_naviframe.c
@@ -497,9 +497,13 @@ _title_clicked(void *data,
497 497
498static void 498static void
499_back_btn_clicked(void *data, 499_back_btn_clicked(void *data,
500 Evas_Object *obj __UNUSED__, 500 Evas_Object *obj,
501 void *event_info __UNUSED__) 501 void *event_info __UNUSED__)
502{ 502{
503/* Since edje has the event queue, clicked event could be happend multiple times
504 on some heavy environment. This callback del will prevent those scenario and
505 guarantee only one clicked for it's own page. */
506 evas_object_smart_callback_del(obj, "clicked", _back_btn_clicked);
503 elm_naviframe_item_pop(data); 507 elm_naviframe_item_pop(data);
504} 508}
505 509
@@ -880,11 +884,7 @@ _item_style_set(Elm_Naviframe_Item *navi_it, const char *item_style)
880 884
881 wd = elm_widget_data_get(WIDGET(navi_it)); 885 wd = elm_widget_data_get(WIDGET(navi_it));
882 if (wd && wd->freeze_events) 886 if (wd && wd->freeze_events)
883 { 887 evas_object_hide(wd->rect);
884 evas_object_hide(wd->rect);
885 //FIXME:
886 evas_object_pass_events_set(wd->base, EINA_FALSE);
887 }
888} 888}
889 889
890EAPI Evas_Object * 890EAPI Evas_Object *
@@ -1040,12 +1040,12 @@ elm_naviframe_item_pop(Evas_Object *obj)
1040 { 1040 {
1041 if (wd->freeze_events) 1041 if (wd->freeze_events)
1042 evas_object_show(wd->rect); 1042 evas_object_show(wd->rect);
1043 edje_object_signal_emit(VIEW(it), "elm,state,cur,popped", "elm");
1044 evas_object_show(VIEW(prev_it)); 1043 evas_object_show(VIEW(prev_it));
1045 evas_object_raise(VIEW(prev_it)); 1044 evas_object_raise(VIEW(prev_it));
1046 edje_object_signal_emit(VIEW(prev_it), 1045 edje_object_signal_emit(VIEW(prev_it),
1047 "elm,state,prev,popped", 1046 "elm,state,prev,popped",
1048 "elm"); 1047 "elm");
1048 edje_object_signal_emit(it->base.view, "elm,state,cur,popped", "elm");
1049 } 1049 }
1050 else 1050 else
1051 _item_del(it); 1051 _item_del(it);
@@ -1089,11 +1089,7 @@ elm_naviframe_item_promote(Elm_Object_Item *it)
1089 prev_it = EINA_INLIST_CONTAINER_GET(wd->stack->last->prev, 1089 prev_it = EINA_INLIST_CONTAINER_GET(wd->stack->last->prev,
1090 Elm_Naviframe_Item); 1090 Elm_Naviframe_Item);
1091 if (wd->freeze_events) 1091 if (wd->freeze_events)
1092 { 1092 evas_object_show(wd->rect);
1093 evas_object_show(wd->rect);
1094 //FIXME:
1095 evas_object_pass_events_set(wd->base, EINA_TRUE);
1096 }
1097 edje_object_signal_emit(prev_it->base.view, 1093 edje_object_signal_emit(prev_it->base.view,
1098 "elm,state,cur,pushed", 1094 "elm,state,cur,pushed",
1099 "elm"); 1095 "elm");