}
static void
-_elm_genlist_scroll_item_align_highlight_cb(Evas_Object *obj,
- void *data)
+_elm_genlist_scroll_item_align_highlight_cb(Evas_Object *obj)
{
ELM_GENLIST_DATA_GET(obj, sd);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
if (!(wd->scroll_item_align_enable)) return;
eo_do(obj, elm_interface_scrollable_content_viewport_geometry_get
- (NULL, NULL, &vw, &vh));
+ (NULL, NULL, &vw, &vh));
if (!strcmp(wd->scroll_item_valign, "center"))
{
}
static void
-_elm_genlist_scroll_item_align_unhighlight_cb(Evas_Object *obj,
- void *data)
+_elm_genlist_scroll_item_align_unhighlight_cb(Evas_Object *obj)
{
- Evas_Object *wobj = data;
- ELM_GENLIST_DATA_GET(wobj, sd);
- ELM_WIDGET_DATA_GET_OR_RETURN(wobj, wd);
+ ELM_GENLIST_DATA_GET(obj, sd);
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
if (!(wd->scroll_item_align_enable)) return;
{
Evas_Coord vw, vh;
- evas_object_smart_callback_add(obj, "scroll,drag,start", _elm_genlist_scroll_item_align_unhighlight_cb, obj);
- evas_object_smart_callback_add(obj, "scroll,anim,start", _elm_genlist_scroll_item_align_unhighlight_cb, obj);
- evas_object_smart_callback_add(obj, "scroll,anim,stop", _elm_genlist_scroll_item_align_highlight_cb, obj);
-
- eo_do(sd->obj, elm_interface_scrollable_content_viewport_geometry_get
- (NULL, NULL, &vw, &vh));
+ eo_do(sd->obj, elm_interface_scrollable_content_viewport_geometry_get
+ (NULL, NULL, &vw, &vh));
if (vw != 0 || vh != 0)
{
vh = (vh / 2);
}
- sd->aligned_item = _elm_genlist_pos_adjust_xy_item_get(obj, vw, vh);
+ sd->aligned_item = _elm_genlist_pos_adjust_xy_item_get(obj, vw, vh);
if (sd->aligned_item)
{
if (sd->aligned_item->realized)
_scroll_animate_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+
+ if (wd->scroll_item_align_enable)
+ _elm_genlist_scroll_item_align_unhighlight_cb(obj);
+
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_START, NULL);
}
_scroll_animate_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+
+ if (wd->scroll_item_align_enable)
+ _elm_genlist_scroll_item_align_highlight_cb(obj);
+
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_STOP, NULL);
}
_scroll_drag_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+
+ if (wd->scroll_item_align_enable)
+ _elm_genlist_scroll_item_align_unhighlight_cb(obj);
+
evas_object_smart_callback_call(obj, SIG_SCROLL_DRAG_START, NULL);
}