From 18a193ad2294cbcb3f2b51c365db231ff47272f6 Mon Sep 17 00:00:00 2001 From: Gustavo Lima Chaves Date: Tue, 17 Jul 2012 16:42:20 +0000 Subject: [PATCH] [elm] Init code placement fix -- gengrid. SVN revision: 74002 --- legacy/elementary/src/lib/elm_gengrid.c | 91 ++++++++++++------------- 1 file changed, 44 insertions(+), 47 deletions(-) diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index e8da04141b..c19db8167c 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -2306,6 +2306,9 @@ _elm_gengrid_smart_sizing_eval(Evas_Object *obj __UNUSED__) static void _elm_gengrid_smart_add(Evas_Object *obj) { + Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable; + Elm_Gengrid_Pan_Smart_Data *pan_data; + EVAS_SMART_DATA_ALLOC(obj, Elm_Gengrid_Smart_Data); ELM_WIDGET_CLASS(_elm_gengrid_parent_sc)->base.add(obj); @@ -2314,11 +2317,50 @@ _elm_gengrid_smart_add(Evas_Object *obj) evas_object_smart_member_add(priv->hit_rect, obj); elm_widget_sub_object_add(obj, priv->hit_rect); - /* common scroller hit rectangle setup -- it has to take place - * AFTER smart_member_add() */ + /* common scroller hit rectangle setup */ evas_object_color_set(priv->hit_rect, 0, 0, 0, 0); evas_object_show(priv->hit_rect); evas_object_repeat_events_set(priv->hit_rect, EINA_TRUE); + + elm_widget_can_focus_set(obj, EINA_TRUE); + + priv->calc_cb = (Ecore_Cb)_calc_job; + + priv->generation = 1; + + elm_layout_theme_set(obj, "gengrid", "base", elm_widget_style_get(obj)); + + /* interface's add() routine issued AFTER the object's smart_add() */ + priv->s_iface = evas_object_smart_interface_get + (obj, ELM_SCROLLABLE_IFACE_NAME); + + priv->s_iface->objects_set + (obj, ELM_WIDGET_DATA(priv)->resize_obj, priv->hit_rect); + + priv->old_h_bounce = bounce; + priv->old_v_bounce = bounce; + priv->s_iface->bounce_allow_set(obj, bounce, bounce); + + priv->s_iface->animate_start_cb_set(obj, _scroll_animate_start_cb); + priv->s_iface->animate_stop_cb_set(obj, _scroll_animate_stop_cb); + priv->s_iface->drag_start_cb_set(obj, _scroll_drag_start_cb); + priv->s_iface->drag_stop_cb_set(obj, _scroll_drag_stop_cb); + priv->s_iface->edge_left_cb_set(obj, _edge_left_cb); + priv->s_iface->edge_right_cb_set(obj, _edge_right_cb); + priv->s_iface->edge_top_cb_set(obj, _edge_top_cb); + priv->s_iface->edge_bottom_cb_set(obj, _edge_bottom_cb); + priv->s_iface->scroll_cb_set(obj, _scroll_cb); + + priv->align_x = 0.5; + priv->align_y = 0.5; + priv->highlight = EINA_TRUE; + + priv->pan_obj = evas_object_smart_add + (evas_object_evas_get(obj), _elm_gengrid_pan_smart_class_new()); + pan_data = evas_object_smart_data_get(priv->pan_obj); + pan_data->wsd = priv; + + priv->s_iface->extern_pan_set(obj, priv->pan_obj); } static void @@ -2392,8 +2434,6 @@ elm_gengrid_add(Evas_Object *parent) { Evas *e; Evas_Object *obj; - Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable; - Elm_Gengrid_Pan_Smart_Data *pan_data; EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); @@ -2404,49 +2444,6 @@ elm_gengrid_add(Evas_Object *parent) if (!elm_widget_sub_object_add(parent, obj)) ERR("could not add %p as sub object of %p", obj, parent); - - ELM_GENGRID_DATA_GET(obj, sd); - - elm_widget_can_focus_set(obj, EINA_TRUE); - - sd->calc_cb = (Ecore_Cb)_calc_job; - - sd->generation = 1; - - elm_layout_theme_set(obj, "gengrid", "base", elm_widget_style_get(obj)); - - /* interface's add() routine issued AFTER the object's smart_add() */ - sd->s_iface = evas_object_smart_interface_get - (obj, ELM_SCROLLABLE_IFACE_NAME); - - sd->s_iface->objects_set - (obj, ELM_WIDGET_DATA(sd)->resize_obj, sd->hit_rect); - - sd->old_h_bounce = bounce; - sd->old_v_bounce = bounce; - sd->s_iface->bounce_allow_set(obj, bounce, bounce); - - sd->s_iface->animate_start_cb_set(obj, _scroll_animate_start_cb); - sd->s_iface->animate_stop_cb_set(obj, _scroll_animate_stop_cb); - sd->s_iface->drag_start_cb_set(obj, _scroll_drag_start_cb); - sd->s_iface->drag_stop_cb_set(obj, _scroll_drag_stop_cb); - sd->s_iface->edge_left_cb_set(obj, _edge_left_cb); - sd->s_iface->edge_right_cb_set(obj, _edge_right_cb); - sd->s_iface->edge_top_cb_set(obj, _edge_top_cb); - sd->s_iface->edge_bottom_cb_set(obj, _edge_bottom_cb); - sd->s_iface->scroll_cb_set(obj, _scroll_cb); - - sd->align_x = 0.5; - sd->align_y = 0.5; - sd->highlight = EINA_TRUE; - - sd->pan_obj = evas_object_smart_add - (evas_object_evas_get(obj), _elm_gengrid_pan_smart_class_new()); - pan_data = evas_object_smart_data_get(sd->pan_obj); - pan_data->wsd = sd; - - sd->s_iface->extern_pan_set(obj, sd->pan_obj); - return obj; }