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

Reply via email to