[Genlist] Fix genlist size problem
authorTae-Hwan Kim <the81.kim@samsung.com>
Tue, 2 Apr 2013 17:48:58 +0000 (02:48 +0900)
committerSungho Kwak <sungho1.kwak@samsung.com>
Thu, 4 Apr 2013 08:18:34 +0000 (17:18 +0900)
If genlist or viewport size is not yet ready,
edje min calculation is not correct.

Change-Id: I8b401f715de9fa6623e0ea109706a21d765bcd7a

src/lib/elm_genlist.c

index 5b8694b..1e5049f 100644 (file)
@@ -460,7 +460,7 @@ _elm_genlist_pan_smart_resize(Evas_Object *obj,
                               Evas_Coord w,
                               Evas_Coord h)
 {
-   Evas_Coord ow = 0, oh = 0, vw = 0;
+   Evas_Coord ow = 0, oh = 0, vw = 0, vh = 0;
 
    ELM_GENLIST_PAN_DATA_GET(obj, psd);
 
@@ -468,9 +468,9 @@ _elm_genlist_pan_smart_resize(Evas_Object *obj,
    if ((ow == w) && (oh == h)) return;
 
    psd->wsd->s_iface->content_viewport_size_get
-      (ELM_WIDGET_DATA(psd->wsd)->obj, &vw, NULL);
-   if (vw != 0) psd->wsd->prev_viewport_w = vw;
-
+     (ELM_WIDGET_DATA(psd->wsd)->obj, &vw, NULL);
+   if (vw == 0 || vh == 0) return;
+   psd->wsd->prev_viewport_w = vw;
 
    if (psd->wsd->mode == ELM_LIST_COMPRESS)
      psd->wsd->size_changed = EINA_TRUE;
@@ -3973,6 +3973,7 @@ _idle_process(void *data,
 {
    Elm_Genlist_Smart_Data *sd = data;
 
+   if (sd->prev_viewport_w == 0) return ECORE_CALLBACK_RENEW;
    if (_queue_process(sd) > 0) *wakeup = EINA_TRUE;
    if (!sd->queue)
      {