svn update: 51469 (latest:51480)
[framework/uifw/elementary.git] / src / lib / elm_progressbar.c
index d290f1d..8de8300 100644 (file)
@@ -139,6 +139,7 @@ _sub_del(void *data __UNUSED__, Evas_Object *obj, void *event_info)
        evas_object_event_callback_del_full
          (sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
        wd->icon = NULL;
+       edje_object_message_signal_process(wd->progressbar);
        _sizing_eval(obj);
      }
 }
@@ -372,10 +373,7 @@ elm_progressbar_label_get(const Evas_Object *obj)
 /**
  * Set the icon object of the progressbar object
  *
- * Once the icon object is set, it will become a child of the progressbar object and
- * be deleted when the progressbar object is deleted. If another icon object is set
- * then the previous one becomes orophaned and will no longer be deleted along
- * with the progressbar.
+ * Once the icon object is set, a previously set one will be deleted.
  *
  * @param obj The progressbar object
  * @param icon The icon object
@@ -388,8 +386,8 @@ elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon)
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
-   if ((wd->icon != icon) && (wd->icon))
-     elm_widget_sub_object_del(obj, wd->icon);
+   if (wd->icon == icon) return;
+   if (wd->icon) evas_object_del(wd->icon);
    wd->icon = icon;
    if (icon)
      {
@@ -398,8 +396,9 @@ elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon)
                                       _changed_size_hints, obj);
        edje_object_part_swallow(wd->progressbar, "elm.swallow.content", icon);
        edje_object_signal_emit(wd->progressbar, "elm,state,icon,visible", "elm");
-       _sizing_eval(obj);
+       edje_object_message_signal_process(wd->progressbar);
      }
+   _sizing_eval(obj);
 }
 
 /**