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);
      }

-- 


Reply via email to