hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b61f755e88b898e51554934682e7cd2526b868ab
commit b61f755e88b898e51554934682e7cd2526b868ab Author: Shinwoo Kim <[email protected]> Date: Fri Jun 19 16:07:06 2020 +0900 elm_scroller: use region of proxy soruce for loop Summary: If size of elm_sclloer content is too big, then the proxy of elm_scroller to show loop effect does not work. Because evas_gl_common_image_surface_new does not allow bigger size surface than max_texture_size. Reviewers: Hermet, jsuya, herb Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11996 --- src/lib/elementary/elm_scroller.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c index 8d20030a91..e21b5cba43 100644 --- a/src/lib/elementary/elm_scroller.c +++ b/src/lib/elementary/elm_scroller.c @@ -328,6 +328,7 @@ _elm_scroller_efl_ui_widget_on_access_activate(Eo *obj, Elm_Scroller_Data *_pd E EOLIAN static void _elm_scroller_efl_canvas_group_group_calculate(Eo *obj, Elm_Scroller_Data *sd) { + Evas_Coord ovw, ovh; Evas_Coord vw = 0, vh = 0, minw = 0, minh = 0, maxw = 0, maxh = 0, w, h, vmw, vmh; Evas_Coord h_pagesize, v_pagesize; @@ -345,6 +346,10 @@ _elm_scroller_efl_canvas_group_group_calculate(Eo *obj, Elm_Scroller_Data *sd) elm_interface_scrollable_content_viewport_geometry_get (obj, NULL, NULL, &vw, &vh); + + ovw = vw; + ovh = vh; + if (xw > 0.0) { if ((minw > 0) && (vw < minw)) @@ -372,7 +377,8 @@ _elm_scroller_efl_canvas_group_group_calculate(Eo *obj, Elm_Scroller_Data *sd) { if (!sd->proxy_content[i]) continue; elm_interface_scrollable_paging_get((Eo *)obj, NULL, NULL, &h_pagesize, &v_pagesize); - evas_object_image_fill_set(sd->proxy_content[i], 0, 0, vw, vh); + evas_object_image_fill_set(sd->proxy_content[i], 0, 0, ovw, ovh); + evas_object_image_load_region_set(sd->proxy_content[i], 0, 0, ovw, ovh); evas_object_size_hint_min_set(sd->proxy_content[i], h_pagesize, v_pagesize); } --
