X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Flib%2Felm_gengrid.c;h=62e9989612df81fde22869cf2ddf0ce6b58bb28a;hb=979c325de5b17d8ebdc452b93425902ef6a7efa9;hp=663fb435bacf62f59443ed0f9f2918f479e1882f;hpb=25ee5b1debf1e5d278265ade368bab575b79412b;p=framework%2Fuifw%2Felementary.git diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index 663fb43..62e9989 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -749,6 +749,18 @@ _access_on_highlight_cb(void *data) } static void +_access_activate_cb(void *data __UNUSED__, + Evas_Object *part_obj __UNUSED__, + Elm_Object_Item *item) +{ + Elm_Gen_Item *it = (Elm_Gen_Item *)item; + ELM_GENGRID_ITEM_CHECK_OR_RETURN(it); + + _item_highlight(it); + it->sel_cb(it); +} + +static void _access_widget_item_register(Elm_Gen_Item *it) { Elm_Access_Info *ai; @@ -761,6 +773,7 @@ _access_widget_item_register(Elm_Gen_Item *it) _elm_access_callback_set(ai, ELM_ACCESS_INFO, _access_info_cb, it); _elm_access_callback_set(ai, ELM_ACCESS_STATE, _access_state_cb, it); _elm_access_on_highlight_hook_set(ai, _access_on_highlight_cb, it); + _elm_access_activate_callback_set(ai, _access_activate_cb, it); } static void @@ -1006,6 +1019,9 @@ _item_place(Elm_Gen_Item *it, it->x = cx; it->y = cy; + if (wsd->horizontal) it->position = cx; + else it->position = cy; + evas_object_geometry_get(wsd->pan_obj, &ox, &oy, &vw, &vh); /* Preload rows/columns at each side of the Gengrid */ @@ -3776,7 +3792,11 @@ _elm_gengrid_proxy_item_new(const Elm_Object_Item *item) pi->proxy = evas_object_image_filled_add (evas_object_evas_get(ELM_WIDGET_DATA(GG_IT(it)->wsd)->obj)); - if (!pi->proxy) return EINA_FALSE; + if (!pi->proxy) + { + free(pi); + return NULL; + } evas_object_clip_set(pi->proxy, evas_object_clip_get(GG_IT(it)->wsd->pan_obj)); evas_object_smart_member_add(pi->proxy, GG_IT(it)->wsd->pan_obj); evas_object_hide(pi->proxy); @@ -3961,9 +3981,12 @@ static void _item_fx_done(Elm_Transit_Effect *data, Elm_Transit *transit __UNUSED__) { Elm_Gen_FX_Item *fx_done_it = data; - Elm_Gengrid_Smart_Data *sd = GG_IT(fx_done_it->it)->wsd; + Elm_Gengrid_Smart_Data *sd; + + if ((!fx_done_it) || (!fx_done_it->it)) return; - if ((!fx_done_it) || (!fx_done_it->it) || (!sd)) return; + sd = GG_IT(fx_done_it->it)->wsd; + if (!sd) return; evas_object_image_source_visible_set(fx_done_it->proxy, EINA_TRUE); evas_object_lower(fx_done_it->proxy); @@ -3981,9 +4004,12 @@ _item_fx_del_cb(void *data, Elm_Transit *transit __UNUSED__) Elm_Gen_Item *it = NULL; Proxy_Item *pi = NULL; Eina_List *l; - Elm_Gengrid_Smart_Data *sd = GG_IT(fx_done_it->it)->wsd; + Elm_Gengrid_Smart_Data *sd; + + if ((!fx_done_it) || (!fx_done_it->it)) return; - if ((!fx_done_it) || (!fx_done_it->it) || (!sd)) return; + sd = GG_IT(fx_done_it->it)->wsd; + if (!sd) return; sd->fx_items = eina_list_remove(sd->fx_items, fx_done_it); free(fx_done_it);