[Attach-panel] remove grid tab if there is no more items 79/107979/1
authormoon87.park <moon87.park@samsung.com>
Mon, 2 Jan 2017 07:28:11 +0000 (16:28 +0900)
committermoon87.park <moon87.park@samsung.com>
Mon, 2 Jan 2017 07:28:11 +0000 (16:28 +0900)
Change-Id: I69e09e865a1bc389d340307ada014a3937bb7566

src/ui_manager.c

index 8fe7309621a8cf72e99b11b7f3bde19dd91ac559..2104b3e31c63e91e65907c5255482926f2e0b42e 100644 (file)
@@ -99,19 +99,22 @@ void _ui_manager_destroy_content(content_s *content_info, attach_panel_h attach_
        ret_if(!content_info->content);
        ret_if(!attach_panel);
 
-       evas_object_data_del(content_info->content, DATA_KEY_PAGE);
+       int count = 0;
+       Evas_Object *page = evas_object_data_del(content_info->content, DATA_KEY_PAGE);
 
        switch (content_info->innate_content_info->content_category) {
        case ATTACH_PANEL_CONTENT_CATEGORY_IMAGE:
        case ATTACH_PANEL_CONTENT_CATEGORY_CAMERA:
        case ATTACH_PANEL_CONTENT_CATEGORY_VOICE:
        case ATTACH_PANEL_CONTENT_CATEGORY_DOCUMENT:
+               elm_object_part_content_unset(page, "content");
                _ug_destroy(content_info->content);
                break;
        default:
+               count = _grid_count_item(attach_panel->grid);
                _grid_remove_item(attach_panel->grid, content_info);
 
-               if (!_grid_count_item(attach_panel->grid)) {
+               if (count <= 1) {
                        _grid_destroy(attach_panel->grid);
                        attach_panel->grid = NULL;
                }
@@ -242,27 +245,24 @@ void _ui_manager_remove_content_category(Evas_Object *ui_manager, content_s *con
        attach_panel = evas_object_data_get(ui_manager, DATA_KEY_ATTACH_PANEL_INFO);
        ret_if(!attach_panel);
 
+       _D("category[%s]", content_info->innate_content_info->name);
        _ui_manager_destroy_content(content_info, attach_panel);
 
-       if (content_info->innate_content_info->is_ug
-               || !attach_panel->grid) {
-               Evas_Object *page = evas_object_data_get(content_info->content, DATA_KEY_PAGE);
-               if (page) {
-                       _page_destroy(page);
-               }
+       bool page_removed = false;
+       if (content_info->innate_content_info->is_ug || !attach_panel->grid) {
+               _D("remove page");
                _toolbar_remove_item(attach_panel->toolbar, content_info->tabbar_item);
-       }
-
-       bool ug_removed = false;
-       if (content_info->innate_content_info->is_ug) {
                _scroller_remove_page(attach_panel->scroller, content_info->page);
-               ug_removed = true;
+               if (content_info->page) {
+                       _page_destroy(content_info->page);
+               }
+               page_removed = true;
        }
 
        attach_panel->content_list = eina_list_remove(attach_panel->content_list, content_info);
        free(content_info);
 
-       if (ug_removed) {
+       if (page_removed) {
                content_s *ci = NULL;
                const Eina_List *l = NULL;
                int index = 0;