[elm_widget] Enable not to add resize object to or delete resize object from smart...
authorJaehyun Cho <jae_hyun.cho@samsung.com>
Fri, 18 Oct 2013 10:52:55 +0000 (19:52 +0900)
committerDaniel Juyung Seo <seojuyung2@gmail.com>
Fri, 18 Oct 2013 10:52:56 +0000 (19:52 +0900)
Summary: Currently if the third argument of elm_widget_resize_object_set, 'Eina_Bool sub_obj', indicates whether a resize object is added to/deleted from the sub object or not. This commit makes the third argument, 'sub_obj', also indicate whether a resize object is added to/deleted from the smart member or not.

Reviewers: Hermet, seoz

Reviewed By: seoz

CC: seoz
Differential Revision: https://phab.enlightenment.org/D268

src/lib/elm_widget.c

index 7f434ac5bdb43d7951e9f6898e3520aba303d9b5..25340bdd2c5fb375c9d1570c74f24dcfd2ef582a 100644 (file)
@@ -1190,9 +1190,8 @@ _elm_widget_sub_object_del(Eo *obj, void *_pd, va_list *list)
 /*
  * @internal
  *
- * a resize object is a smart member of the parent.
- * a resize object is added to and deleted from the sub object of the parent
- * if the third argument, Eina_Bool sub_obj, is set as EINA_TRUE.
+ * a resize object is added to and deleted from the smart member and the sub object
+ * of the parent if the third argument, Eina_Bool sub_obj, is set as EINA_TRUE.
  */
 EAPI void
 elm_widget_resize_object_set(Evas_Object *obj,
@@ -1215,7 +1214,7 @@ _elm_widget_resize_object_set(Eo *obj, void *_pd, va_list *list)
    if (sd->resize_obj == sobj) return;
 
    // orphan previous resize obj
-   if (sd->resize_obj)
+   if (sd->resize_obj && sub_obj)
      {
         evas_object_clip_unset(sd->resize_obj);
         evas_object_smart_member_del(sd->resize_obj);
@@ -1224,8 +1223,7 @@ _elm_widget_resize_object_set(Eo *obj, void *_pd, va_list *list)
           {
              if (elm_widget_focus_get(sd->resize_obj)) _parents_unfocus(obj);
           }
-
-        if (sub_obj) elm_widget_sub_object_del(obj, sd->resize_obj);
+        elm_widget_sub_object_del(obj, sd->resize_obj);
      }
 
    sd->resize_obj = sobj;
@@ -1246,9 +1244,11 @@ _elm_widget_resize_object_set(Eo *obj, void *_pd, va_list *list)
                elm_widget_sub_object_del(parent, sobj);
           }
      }
-   if (sub_obj) elm_widget_sub_object_add(obj, sobj);
-
-   evas_object_smart_member_add(sobj, obj);
+   if (sub_obj)
+     {
+        elm_widget_sub_object_add(obj, sobj);
+        evas_object_smart_member_add(sobj, obj);
+     }
 
    _smart_reconfigure(sd);
 }