[elm_multibuttonentry.c] bugfix: guidetext box packing
authordeasung.kim <deasung.kim@samsung.com>
Wed, 6 Apr 2011 04:00:39 +0000 (13:00 +0900)
committerdeasung.kim <deasung.kim@samsung.com>
Wed, 6 Apr 2011 07:36:45 +0000 (16:36 +0900)
Change-Id:  I0be5ef1767bd9ae2bca337d1409aab6c45874524

src/lib/elm_multibuttonentry.c

index 2982c6b..34bca54 100644 (file)
@@ -85,6 +85,7 @@ static Elm_Multibuttonentry_Item* _add_button_item(Evas_Object *obj, const char
 static void   _add_button(Evas_Object *obj, char *str);\r
 static void   _evas_key_up_cb(void *data, Evas *e , Evas_Object *obj , void *event_info );\r
 static void   _view_init(Evas_Object *obj);\r
+static void _set_vis_guidetext(Evas_Object *obj);\r
 \r
 static void\r
 _del_hook(Evas_Object *obj)\r
@@ -235,6 +236,35 @@ _event_init(Evas_Object *obj)
 }\r
 \r
 static void\r
+_set_vis_guidetext(Evas_Object *obj)\r
+{\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (wd && !eina_list_count(wd->items))\r
+     {\r
+        if (wd->guidetext && !elm_widget_focus_get(obj) && !wd->focused)\r
+          {\r
+             elm_box_unpack(wd->box, wd->guidetext);\r
+             elm_box_unpack(wd->box, wd->entry);\r
+             evas_object_hide(wd->entry);\r
+             elm_box_pack_end(wd->box, wd->guidetext);\r
+             evas_object_show(wd->guidetext);\r
+          }\r
+        else\r
+          {\r
+             elm_box_unpack(wd->box, wd->entry);\r
+             elm_box_unpack(wd->box, wd->guidetext);\r
+             evas_object_hide(wd->guidetext);\r
+             elm_box_pack_end(wd->box, wd->entry);\r
+             evas_object_show(wd->entry);\r
+\r
+             if(elm_widget_focus_get(obj) || wd->focused)\r
+                elm_object_focus(wd->entry);\r
+          }\r
+     }\r
+   return;\r
+}\r
+\r
+static void\r
 _contracted_state_set(Evas_Object *obj, int contracted)\r
 {\r
    Widget_Data *wd = elm_widget_data_get(obj);\r
@@ -244,6 +274,13 @@ _contracted_state_set(Evas_Object *obj, int contracted)
 \r
    if (wd->contracted == contracted) return;\r
 \r
+   if (!eina_list_count(wd->items))\r
+     {\r
+        _set_vis_guidetext(obj);\r
+        wd->contracted = 0;\r
+        return;\r
+     }\r
+\r
    elm_scrolled_entry_entry_set(wd->entry, "");\r
 \r
    if (contracted == 1)\r
@@ -472,28 +509,7 @@ _view_update(Evas_Object *obj)
      }\r
 \r
    // update guidetext\r
-   if (wd->contracted != 1)\r
-     {\r
-        if (wd->guidetext && !eina_list_count (wd->items) && !elm_widget_focus_get(obj) && !wd->focused)\r
-          {\r
-             elm_box_unpack(wd->box, wd->guidetext);\r
-             elm_box_unpack(wd->box, wd->entry);\r
-             evas_object_hide(wd->entry);\r
-             elm_box_pack_end(wd->box, wd->guidetext);\r
-             evas_object_show(wd->guidetext);\r
-          }\r
-        else\r
-          {\r
-             elm_box_unpack(wd->box, wd->entry);\r
-             elm_box_unpack(wd->box, wd->guidetext);\r
-             evas_object_hide(wd->guidetext);\r
-             elm_box_pack_end(wd->box, wd->entry);\r
-             evas_object_show(wd->entry);\r
-\r
-             if(elm_widget_focus_get(obj) || wd->focused)\r
-                elm_object_focus(wd->entry);\r
-          }\r
-     }\r
+   if (wd->contracted != 1) _set_vis_guidetext(obj);\r
 }\r
 \r
 static void\r