forked from enlightenment/efl
scroller : fix mirrored contents_pos_set call
Summary: Fixes that a scroller can not be moved normally even if it is changed to mirrored. In elm_scroller, _mirrored_set is called when sizing_eval is called. because When content size is changed, it should be scrolled based on mirrored coordinates. Also In elm_interface_scrollable, elm_interface_scrollable_content_pos_set of _elm_scrollable_mirrored_set to be called regardless of mirrored state. Test Plan: scroller test on elementary_test. Reviewers: raster, woohyun, SanghyeonLee, akanad, eagleeye, cedric, singh.amitesh, eunue Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4908 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
parent
da5ba14664
commit
de313d6296
|
@ -1675,22 +1675,22 @@ _elm_interface_scrollable_mirrored_set(Eo *obj EINA_UNUSED, Elm_Scrollable_Smart
|
||||||
{
|
{
|
||||||
Evas_Coord wx;
|
Evas_Coord wx;
|
||||||
|
|
||||||
if (!sid->edje_obj) return;
|
if (!sid->edje_obj || !sid->pan_obj) return;
|
||||||
|
|
||||||
mirrored = !!mirrored;
|
mirrored = !!mirrored;
|
||||||
|
|
||||||
if (sid->is_mirrored == mirrored)
|
|
||||||
return;
|
|
||||||
|
|
||||||
sid->is_mirrored = mirrored;
|
|
||||||
edje_object_mirrored_set(sid->edje_obj, mirrored);
|
|
||||||
|
|
||||||
if (sid->is_mirrored)
|
if (sid->is_mirrored)
|
||||||
wx = _elm_scroll_x_mirrored_get(sid->obj, sid->wx);
|
wx = _elm_scroll_x_mirrored_get(sid->obj, sid->wx);
|
||||||
else
|
else
|
||||||
wx = sid->wx;
|
wx = sid->wx;
|
||||||
|
|
||||||
elm_interface_scrollable_content_pos_set(sid->obj, wx, sid->wy, EINA_FALSE);
|
elm_interface_scrollable_content_pos_set(sid->obj, wx, sid->wy, EINA_FALSE);
|
||||||
|
|
||||||
|
if (sid->is_mirrored == mirrored)
|
||||||
|
return;
|
||||||
|
|
||||||
|
sid->is_mirrored = mirrored;
|
||||||
|
edje_object_mirrored_set(sid->edje_obj, mirrored);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns TRUE when we need to move the scroller, FALSE otherwise.
|
/* returns TRUE when we need to move the scroller, FALSE otherwise.
|
||||||
|
|
|
@ -329,6 +329,13 @@ _elm_scroller_elm_widget_activate(Eo *obj, Elm_Scroller_Data *_pd EINA_UNUSED, E
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_mirrored_set(Evas_Object *obj,
|
||||||
|
Eina_Bool mirrored)
|
||||||
|
{
|
||||||
|
elm_interface_scrollable_mirrored_set(obj, mirrored);
|
||||||
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_elm_scroller_elm_layout_sizing_eval(Eo *obj, Elm_Scroller_Data *sd)
|
_elm_scroller_elm_layout_sizing_eval(Eo *obj, Elm_Scroller_Data *sd)
|
||||||
{
|
{
|
||||||
|
@ -394,13 +401,8 @@ _elm_scroller_elm_layout_sizing_eval(Eo *obj, Elm_Scroller_Data *sd)
|
||||||
if ((maxh > 0) && (h > maxh)) h = maxh;
|
if ((maxh > 0) && (h > maxh)) h = maxh;
|
||||||
|
|
||||||
evas_object_size_hint_min_set(obj, w, h);
|
evas_object_size_hint_min_set(obj, w, h);
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
_mirrored_set(obj, elm_widget_mirrored_get(obj));
|
||||||
_mirrored_set(Evas_Object *obj,
|
|
||||||
Eina_Bool mirrored)
|
|
||||||
{
|
|
||||||
elm_interface_scrollable_mirrored_set(obj, mirrored);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Elm_Theme_Apply
|
EOLIAN static Elm_Theme_Apply
|
||||||
|
@ -410,8 +412,6 @@ _elm_scroller_elm_widget_theme_apply(Eo *obj, Elm_Scroller_Data *sd EINA_UNUSED)
|
||||||
int_ret = elm_obj_widget_theme_apply(efl_super(obj, MY_CLASS));
|
int_ret = elm_obj_widget_theme_apply(efl_super(obj, MY_CLASS));
|
||||||
if (!int_ret) return ELM_THEME_APPLY_FAILED;
|
if (!int_ret) return ELM_THEME_APPLY_FAILED;
|
||||||
|
|
||||||
_mirrored_set(obj, elm_widget_mirrored_get(obj));
|
|
||||||
|
|
||||||
elm_layout_sizing_eval(obj);
|
elm_layout_sizing_eval(obj);
|
||||||
|
|
||||||
return int_ret;
|
return int_ret;
|
||||||
|
|
Loading…
Reference in New Issue