Hello. I attached the modified patch about calc_job problem.
When I tested gengrid, sometimes gengrid renderd two times in different shape in a moment. So I checked gengrid code, I found cause in calc_job function. calc_job added to ecore job after elm_gengrid_item_size_set and elm_gengrid_item_append(,prepend,insert_before,insert_after) and etc. Sometimes pan_smart's cvw and cvh is 0 at this time. I think, No need to calc_job when pan_smart's cvw and cvh is 0. Please check about this patch. Thanks.
Index: src/lib/elm_gengrid.c =================================================================== --- src/lib/elm_gengrid.c (revision 57314) +++ src/lib/elm_gengrid.c (working copy) @@ -1281,36 +1281,39 @@ _calc_job(void *data) int count; evas_object_geometry_get(wd->pan_smart, NULL, NULL, &cvw, &cvh); - if ((wd->horizontal) && (wd->item_height > 0)) - nmax = cvh / wd->item_height; - else if (wd->item_width > 0) - nmax = cvw / wd->item_width; + if (cvw != 0 || cvh != 0) + { + if ((wd->horizontal) && (wd->item_height > 0)) + nmax = cvh / wd->item_height; + else if (wd->item_width > 0) + nmax = cvw / wd->item_width; - if (nmax < 1) - nmax = 1; + if (nmax < 1) + nmax = 1; - count = wd->count; - if (wd->horizontal) - { - minw = ceil(count / (float)nmax) * wd->item_width; - minh = nmax * wd->item_height; - } - else - { - minw = nmax * wd->item_width; - minh = ceil(count / (float)nmax) * wd->item_height; - } + count = wd->count; + if (wd->horizontal) + { + minw = ceil(count / (float)nmax) * wd->item_width; + minh = nmax * wd->item_height; + } + else + { + minw = nmax * wd->item_width; + minh = ceil(count / (float)nmax) * wd->item_height; + } - if ((minw != wd->minw) || (minh != wd->minh)) - { - wd->minh = minh; - wd->minw = minw; - evas_object_smart_callback_call(wd->pan_smart, "changed", NULL); + if ((minw != wd->minw) || (minh != wd->minh)) + { + wd->minh = minh; + wd->minw = minw; + evas_object_smart_callback_call(wd->pan_smart, "changed", NULL); + } + + wd->nmax = nmax; + wd->calc_job = NULL; + evas_object_smart_changed(wd->pan_smart); } - - wd->nmax = nmax; - wd->calc_job = NULL; - evas_object_smart_changed(wd->pan_smart); } static void
------------------------------------------------------------------------------ Free Software Download: Index, Search & Analyze Logs and other IT data in Real-Time with Splunk. Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel