I resubmit the patch file. Thank you. -----Original Message----- From: Carsten Haitzler (The Rasterman) [mailto:ras...@rasterman.com] Sent: Monday, February 28, 2011 12:14 AM To: Jeonghyun Yun Cc: enlightenment-devel@lists.sourceforge.net Subject: Re: [E-devel] [Patch] elm_gengrid bug patch
On Fri, 25 Feb 2011 13:42:21 +0900 Jeonghyun Yun <jh0506....@samsung.com> said: > 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. ok - but your formatting/code style are a bit off: if (cvw != 0 || cvh != 0) should be if ((cvw != 0) || (cvh != 0)) resubmit? :) -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com
Index: src/lib/elm_gengrid.c =================================================================== --- src/lib/elm_gengrid.c (revision 57464) +++ 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