Seems to be few little bugs here.

Nailed one little one... but can you check the rest?





> +EAPI Evas_Object *
> +elm_hover_content_unset(Evas_Object *obj, const char *swallow)
> +{
> +   ELM_CHECK_WIDTYPE(obj, widtype);
> +   Widget_Data *wd = elm_widget_data_get(obj);
> +   Subinfo *si;
> +   Evas_Object *content;
> +   const Eina_List *l;
> +   char buf[1024];
> +   if (!wd) return NULL;
> +   snprintf(buf, sizeof(buf), "elm.swallow.slot.%s", swallow);
> +   EINA_LIST_FOREACH(wd->subs, l, si)
> +     {
> +     if (!strcmp(buf, si->swallow))
> +       {
> +          if (!si->obj) return NULL;
> +          content = si->obj;
> +          elm_widget_sub_object_del(obj, si->obj);
> +          edje_object_part_unswallow(wd->cov, si->obj);
> +          si->obj = NULL;
> +          break;
> +       }
> +     }
> +   return content;
> +}

'content' may not be initialised.
And why not return when you get it?


> Modified: trunk/TMP/st/elementary/src/lib/elm_layout.c
> ===================================================================
> --- trunk/TMP/st/elementary/src/lib/elm_layout.c      2010-06-16
> 20:58:01 UTC (rev 49705) +++
> trunk/TMP/st/elementary/src/lib/elm_layout.c  2010-06-16
> 20:58:09 UTC (rev 49706) @@ -211,6 +211,10 @@ /**
>   * Set the layout content
>   *
> + * Once the content object is set, a previously set one will be
> deleted.
> + * If you want to keep that old content object, use the
> + * elm_layout_content_unset() function.
> + *
>   * @param obj The layout object
>   * @param swallow The swallow group name in the edje file
>   * @param content The content will be filled in this layout object
> @@ -230,7 +234,8 @@
>       if (!strcmp(swallow, si->swallow))
>         {
>            if (content == si->obj) return;
> -          elm_widget_sub_object_del(obj, si->obj);
> +          evas_object_del(si->obj);
> +          si->obj = NULL;
>            break;
>         }
>       }
> @@ -245,11 +250,46 @@
>       si->swallow = eina_stringshare_add(swallow);
>       si->obj = content;
>       wd->subs = eina_list_append(wd->subs, si);
> -     _request_sizing_eval(obj);
>       }
> +   _request_sizing_eval(obj);
>  }
>  
>  /**
> + * Unset the layout content
> + *
> + * Unparent and return the content object which was set for this
> widget
> + *
> + * @param obj The layout object
> + * @param swallow The swallow group name in the edje file
> + * @return The content that was being used
> + *
> + * @ingroup Layout
> + */
> +EAPI Evas_Object *
> +elm_layout_content_unset(Evas_Object *obj, const char *swallow)
> +{
> +   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
> +   Widget_Data *wd = elm_widget_data_get(obj);
> +   Subinfo *si;
> +   Evas_Object *content;
> +   const Eina_List *l;
> +   if (!wd) return NULL;
> +   EINA_LIST_FOREACH(wd->subs, l, si)
> +     {
> +     if (!strcmp(swallow, si->swallow))
> +       {
> +          if (!si->obj) return NULL;
> +          content == si->obj;
> +          elm_widget_sub_object_del(obj, si->obj);
> +          edje_object_part_unswallow(wd->lay, si->obj);
> +          si->obj = NULL;
> +          break;
> +       }
> +     }
> +   return content;

I fixed the ==.
But 'content' again.

> Modified: trunk/TMP/st/elementary/src/lib/elm_list.c
> ===================================================================
> --- trunk/TMP/st/elementary/src/lib/elm_list.c        2010-06-16
> 20:58:01 UTC (rev 49705) +++
> trunk/TMP/st/elementary/src/lib/elm_list.c    2010-06-16 20:58:09
> UTC (rev 49706) @@ -1296,6 +1296,10 @@ /**
>   * Sets the left side icon associated with the item.
>   *
> + * Once the icon object is set, a previously set one will be deleted.
> + * You probably don't want, then, to have the <b>same</b> icon
> object set
> + * for more than one item of the list.
> + *
>   * @param it The list item
>   * @param icon The left side icon object to associate with @p it
>   *
> @@ -1307,13 +1311,22 @@
>     ELM_LIST_ITEM_CHECK_DELETED_RETURN(it);
>     if (it->icon == icon) return;
>     if (it->dummy_icon && !icon) return;
> -   if (it->dummy_icon) evas_object_del(it->icon);
> +   if (it->dummy_icon)
> +     {
> +     evas_object_del(it->icon);
> +     it->dummy_icon = EINA_FALSE;

Is this right?

> +     }
>     if (!icon)
>       {
>       icon =
> evas_object_rectangle_add(evas_object_evas_get(it->obj));
> evas_object_color_set(icon, 0, 0, 0, 0); it->dummy_icon = EINA_TRUE;
>       }
> +   if (it->icon)
> +     {
> +     evas_object_del(it->icon);
> +     it->icon = NULL;
> +     }
>     it->icon = icon;
>     if (it->base)
>       edje_object_part_swallow(it->base, "elm.swallow.icon", icon);
> @@ -1336,8 +1349,12 @@
>  }

        Regards,
        nash

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to