From 0a31f91b2018f861d2c2952dbcb682e78f1f423e Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Sun, 9 Mar 2014 04:46:24 +0900 Subject: [PATCH] genlist: Refactor event_block_rect handling routine. - Changed wrong name alpha_bg to event_block_rect. - Added more comments to the smart data variable. - Changed wrong function name _tray_alpha_bg_create to _event_block_rect_update. --- legacy/elementary/src/lib/elm_genlist.c | 43 ++++++++++--------- .../elementary/src/lib/elm_widget_genlist.h | 5 +-- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index 33659741c8..35691a9276 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -797,8 +797,8 @@ _item_tree_effect_finish(Elm_Genlist_Smart_Data *sd) } _item_auto_scroll(sd); - evas_object_lower(sd->alpha_bg); - evas_object_hide(sd->alpha_bg); + evas_object_lower(sd->event_block_rect); + evas_object_hide(sd->event_block_rect); sd->move_effect_mode = ELM_GENLIST_TREE_EFFECT_NONE; sd->move_items = eina_list_free(sd->move_items); @@ -2221,9 +2221,9 @@ _elm_genlist_pan_smart_calculate(Eo *obj EINA_UNUSED, void *_pd, va_list *list E if (!sd->tree_effect_animator) { _item_tree_effect_before(sd->expanded_item); - evas_object_raise(sd->alpha_bg); - evas_object_stack_below(sd->alpha_bg, sd->stack[1]); - evas_object_show(sd->alpha_bg); + evas_object_raise(sd->event_block_rect); + evas_object_stack_below(sd->event_block_rect, sd->stack[1]); + evas_object_show(sd->event_block_rect); sd->start_time = ecore_time_get(); sd->tree_effect_animator = ecore_animator_add(_tree_effect_animator_cb, sd->obj); @@ -5328,7 +5328,7 @@ _elm_genlist_clear(Evas_Object *obj, sd->minw = 0; sd->minh = 0; - ELM_SAFE_FREE(sd->alpha_bg, evas_object_del); + ELM_SAFE_FREE(sd->event_block_rect, evas_object_del); if (sd->pan_obj) { @@ -6414,8 +6414,8 @@ elm_genlist_item_subitems_clear(Elm_Object_Item *item) { sd->expanded_item = it; _item_tree_effect_before(it); - evas_object_stack_below(sd->alpha_bg, sd->stack[1]); - evas_object_show(sd->alpha_bg); + evas_object_stack_below(sd->event_block_rect, sd->stack[1]); + evas_object_show(sd->event_block_rect); sd->start_time = ecore_time_get(); sd->tree_effect_animator = ecore_animator_add(_tree_effect_animator_cb, sd->obj); @@ -6524,23 +6524,24 @@ _elm_genlist_move_items_set(Elm_Gen_Item *it) } } -static Evas_Object * -_tray_alpha_bg_create(const Evas_Object *obj) +static void +_event_block_rect_update(const Evas_Object *obj) { - Evas_Object *bg = NULL; Evas_Coord ox, oy, ow, oh; - ELM_GENLIST_CHECK(obj) NULL; + ELM_GENLIST_CHECK(obj); ELM_GENLIST_DATA_GET(obj, sd); - evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); - bg = evas_object_rectangle_add - (evas_object_evas_get(sd->obj)); - evas_object_color_set(bg, 0, 0, 0, 0); - evas_object_resize(bg, ow, oh); - evas_object_move(bg, ox, oy); + if (!sd->event_block_rect) + { + sd->event_block_rect = evas_object_rectangle_add( + evas_object_evas_get(sd->obj)); + } - return bg; + evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); + evas_object_color_set(sd->event_block_rect, 0, 0, 0, 0); + evas_object_resize(sd->event_block_rect, ow, oh); + evas_object_move(sd->event_block_rect, ox, oy); } EAPI void @@ -6559,8 +6560,8 @@ elm_genlist_item_expanded_set(Elm_Object_Item *item, sd->expanded_item = it; _elm_genlist_move_items_set(it); - if (sd->tree_effect_enabled && !sd->alpha_bg) - sd->alpha_bg = _tray_alpha_bg_create(WIDGET(it)); + if (sd->tree_effect_enabled) + _event_block_rect_update(WIDGET(it)); if (it->item->expanded) { diff --git a/legacy/elementary/src/lib/elm_widget_genlist.h b/legacy/elementary/src/lib/elm_widget_genlist.h index 9d0c8d0301..5fe7fa2366 100644 --- a/legacy/elementary/src/lib/elm_widget_genlist.h +++ b/legacy/elementary/src/lib/elm_widget_genlist.h @@ -126,10 +126,7 @@ struct _Elm_Genlist_Smart_Data /* a scrollto type which remembers where to scroll ex) in, top, * middle */ Elm_Genlist_Item_Scrollto_Type scroll_to_type; - Evas_Object *alpha_bg; /* not to receive - * event when tree - * effect is not - * finished */ + Evas_Object *event_block_rect; /**< This object blocks the event in some cases. For example, when the tree effect is running and not finished, this object blocks events to the genlist. */ Eina_List *move_items; /* items move for * tree effect */ Elm_Gen_Item *expanded_next_item;