From 314d6b4dcc4d70f100dc25d04be23eeffbc9f20c Mon Sep 17 00:00:00 2001 From: YoungHun Cho Date: Fri, 17 Jun 2016 11:14:28 +0900 Subject: [PATCH] Fix Widget duplication issue after deleting a page Change-Id: Ia86c739ab24ca05a4fbee5ca199408dcee015eea --- .gitignore | 1 + src/cluster_view.c | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 813772b..152a4e0 100755 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /SA_Report .svace-dir .sign +.sdk_delta.info diff --git a/src/cluster_view.c b/src/cluster_view.c index e1d62c1..0a38764 100755 --- a/src/cluster_view.c +++ b/src/cluster_view.c @@ -395,8 +395,7 @@ bool cluster_view_set_state(view_state_t state) widget_data_t *item = NULL; EINA_LIST_FOREACH(data_list, find_list, item) { if (item->widget_layout) { - if (!cluster_view_s.picked_widget || item->widget_layout != cluster_view_s.picked_widget->widget_layout) - { + if (!cluster_view_s.picked_widget || item->widget_layout != cluster_view_s.picked_widget->widget_layout) { elm_object_signal_emit(item->widget_layout, SIGNAL_DELETE_BUTTON_SHOW_ANI, SIGNAL_SOURCE); } else { evas_object_event_callback_add(item->widget_content, EVAS_CALLBACK_MOUSE_DOWN, __clsuter_view_widget_down_cb, item); @@ -886,21 +885,26 @@ static void __cluster_view_allpage_delete_page_cb(void *data, Evas_Object *obj, EINA_LIST_FOREACH(cluster_view_s.page_list, find_list, page_item) { if (page_item->page_index > page->page_index) { page_item->page_index -= 1; + } } - __cluster_view_page_delete(page); - __cluster_view_allpage_reposition(); - Eina_List *widget_list = NULL; widget_data_t *widget_item = NULL; EINA_LIST_FOREACH(cluster_view_s.page_list, find_list, page_item) { EINA_LIST_FOREACH(page_item->widget_list, widget_list, widget_item) { - widget_item->page_idx = page_item->page_index; + if (page_item == page) + widget_item->page_idx = -1; + else + widget_item->page_idx = page_item->page_index; cluster_data_update(widget_item); } } + __cluster_view_page_delete(page); + __cluster_view_allpage_reposition(); + + if (cluster_view_s.page_count < CLUSTER_MAX_PAGE) { if (cluster_view_s.allpage_add_page == NULL) { cluster_view_s.allpage_add_page = elm_layout_add(cluster_view_s.allpage); -- 2.7.4