[Genlst] Fix genlist
authorTae-Hwan Kim <the81.kim@samsung.com>
Fri, 5 Apr 2013 05:04:53 +0000 (14:04 +0900)
committerSungho Kwak <sungho1.kwak@samsung.com>
Fri, 5 Apr 2013 07:22:52 +0000 (16:22 +0900)
idle enterer is not called always. So calc job is alive always for this

Change-Id: I7cffbeb7f92882a01e9be05e4992958ff0aee4c5

packaging/elementary.spec
src/lib/elm_genlist.c

index 42057e0..4c10f21 100644 (file)
@@ -1,7 +1,7 @@
 #sbs-git:slp/pkgs/e/elementary elementary 1.0.0+svn.70492slp2+build11
 Name:       elementary
 Summary:    EFL toolkit for small touchscreens
-Version:    1.7.1+svn.77535+build89r01
+Version:    1.7.1+svn.77535+build89r02
 Release:    1
 Group:      System/Libraries
 License:    LGPLv2.1
index 1e5049f..e8f5028 100644 (file)
@@ -467,10 +467,7 @@ _elm_genlist_pan_smart_resize(Evas_Object *obj,
    evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
    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 || vh == 0) return;
-   psd->wsd->prev_viewport_w = vw;
+   if (vw != 0) psd->wsd->prev_viewport_w = vw;
 
    if (psd->wsd->mode == ELM_LIST_COMPRESS)
      psd->wsd->size_changed = EINA_TRUE;
@@ -3968,17 +3965,24 @@ _queue_process(Elm_Genlist_Smart_Data *sd)
 }
 
 static Eina_Bool
-_idle_process(void *data,
-              Eina_Bool *wakeup)
+_item_idle_enterer(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 (_queue_process(sd) > 0)
+     {
+        // wake up mainloop
+        // Job always be alive because idle_enterer should be alive
+        if (sd->calc_job) ecore_job_del(sd->calc_job);
+        sd->calc_job = ecore_job_add(_calc_job, sd);
+     }
    if (!sd->queue)
      {
+        sd->queue_idle_enterer = NULL;
         return ECORE_CALLBACK_CANCEL;
      }
+
 #if GENLIST_FX_SUPPORT
    if (sd->fx_first_captured)
      _elm_genlist_fx_clear(ELM_WIDGET_DATA(sd)->obj);
@@ -3986,24 +3990,6 @@ _idle_process(void *data,
    return ECORE_CALLBACK_RENEW;
 }
 
-static Eina_Bool
-_item_idle_enterer(void *data)
-{
-   Eina_Bool wakeup = EINA_FALSE;
-   Elm_Genlist_Smart_Data *sd = data;
-   Eina_Bool ok = _idle_process(data, &wakeup);
-
-   if (wakeup)
-     {
-        // wake up mainloop
-        if (sd->calc_job) ecore_job_del(sd->calc_job);
-        sd->calc_job = ecore_job_add(_calc_job, sd);
-     }
-   if (ok == ECORE_CALLBACK_CANCEL) sd->queue_idle_enterer = NULL;
-
-   return ok;
-}
-
 static void
 _item_queue(Elm_Genlist_Smart_Data *sd,
             Elm_Gen_Item *it,