I resubmit the patch file.
Thank you.
-----Original Message-----
From: Carsten Haitzler (The Rasterman) [mailto:[email protected]]
Sent: Monday, February 28, 2011 12:14 AM
To: Jeonghyun Yun
Cc: [email protected]
Subject: Re: [E-devel] [Patch] elm_gengrid bug patch
On Fri, 25 Feb 2011 13:42:21 +0900 Jeonghyun Yun <[email protected]>
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) [email protected]
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel