rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=d0b4d55be3e392b1016989590c2f751bd440e70d

commit d0b4d55be3e392b1016989590c2f751bd440e70d
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Wed Jul 13 15:33:07 2016 +0300

    group_navigator: fix selection after data_del
---
 src/bin/ui/workspace/group_navigator.c | 22 +++++++++++++++-------
 src/bin/ui/workspace/group_navigator.h |  2 +-
 src/bin/ui/workspace/workspace.c       |  8 +++++++-
 3 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/src/bin/ui/workspace/group_navigator.c 
b/src/bin/ui/workspace/group_navigator.c
index e7375fe..2580746 100644
--- a/src/bin/ui/workspace/group_navigator.c
+++ b/src/bin/ui/workspace/group_navigator.c
@@ -462,6 +462,7 @@ _contract_request_cb(void *data __UNUSED__,
 
 static Elm_Object_Item * _part_item_find(Part_List *pl, Part *part);
 static Elm_Object_Item * _program_glit_find(Part_List *pl, Program *part);
+static Elm_Object_Item * _group_data_item_find(Part_List *pl, Resource 
*group_data);
 
 void
 group_navigator_part_state_select(Evas_Object *obj, State *state)
@@ -1844,19 +1845,26 @@ _group_data_del(Part_List *pl,
 }
 
 void
-group_navigator_group_data_del(Evas_Object *obj, Eina_Stringshare *group_data 
__UNUSED__)
+group_navigator_group_data_del(Evas_Object *obj, Resource *data)
 {
    Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA);
+   Elm_Object_Item *data_glit, *to_select;
 
    assert(pl != NULL);
+   assert(data != NULL);
 
+   data_glit = _group_data_item_find(pl, data);
+
+   to_select = elm_genlist_item_next_get(data_glit);
+
+   if ((to_select == NULL) || (elm_genlist_item_item_class_get(to_select) != 
pl->itc_group_data))
+     to_select = elm_genlist_item_prev_get(data_glit);
+   if ((to_select == NULL) || (elm_genlist_item_item_class_get(to_select) != 
pl->itc_group_data))
+     to_select = pl->data_caption_item;
+
+   elm_object_item_del(data_glit);
    elm_genlist_item_update(pl->data_caption_item);
-   if (elm_genlist_item_expanded_get(pl->data_caption_item))
-     {
-        elm_genlist_item_expanded_set(pl->data_caption_item, false);
-        elm_genlist_item_expanded_set(pl->data_caption_item, true);
-     }
-   elm_genlist_item_selected_set(pl->data_caption_item, true);
+   elm_genlist_item_selected_set(to_select, true);
 }
 
 static void
diff --git a/src/bin/ui/workspace/group_navigator.h 
b/src/bin/ui/workspace/group_navigator.h
index 223e278..6ef86db 100644
--- a/src/bin/ui/workspace/group_navigator.h
+++ b/src/bin/ui/workspace/group_navigator.h
@@ -108,7 +108,7 @@ void
 group_navigator_group_data_add(Evas_Object *obj, Eina_Stringshare *group_data);
 
 void
-group_navigator_group_data_del(Evas_Object *obj, Eina_Stringshare *group_data);
+group_navigator_group_data_del(Evas_Object *obj, Resource *group_data);
 
 void
 group_navigator_add_part_request(Evas_Object *obj);
diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index 6037472..19f7916 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -1750,11 +1750,17 @@ workspace_group_data_add(Evas_Object *obj, 
Eina_Stringshare *group_data_name)
 void
 workspace_group_data_del(Evas_Object *obj, Eina_Stringshare *group_data_name)
 {
+   Resource request;
+   Resource *group_data;
    WS_DATA_GET(obj);
    assert(group_data_name != NULL);
 
+   request.resource_type = RESOURCE_TYPE_DATA;
+   request.name = group_data_name;
+   group_data = resource_get(wd->group->data_items, &request);
+
+   group_navigator_group_data_del(wd->group_navi, group_data);
    gm_group_data_del(ap.project, wd->group, group_data_name);
-   group_navigator_group_data_del(wd->group_navi, group_data_name);
 }
 
 void

-- 


Reply via email to