rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=5965489809bb971024f20e4a1a215e4ff5a079dd
commit 5965489809bb971024f20e4a1a215e4ff5a079dd Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Tue Jan 19 18:49:34 2016 +0000 property_group: unset Program Property after program deletion @fix #49755 --- src/bin/common/signals.h | 8 ++++++++ src/bin/ui/group_navigator.c | 1 + src/bin/ui/property_group.c | 14 +++++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h index 00a2cf5..abf3349 100644 --- a/src/bin/common/signals.h +++ b/src/bin/common/signals.h @@ -76,6 +76,14 @@ */ #define SIGNAL_PART_UNSELECTED "SIGNAL_PART_UNSELECTED" +/** + * emited when program is unselected. + * eventinfo - pointer to Resource structure + * + * @ingroup Window + */ +#define SIGNAL_PROGRAM_UNSELECTED "SIGNAL_PROGRAM_UNSELECTED" + typedef struct { const char *old_name; const char *new_name; diff --git a/src/bin/ui/group_navigator.c b/src/bin/ui/group_navigator.c index 07fa3b1..bd43965 100644 --- a/src/bin/ui/group_navigator.c +++ b/src/bin/ui/group_navigator.c @@ -1140,6 +1140,7 @@ _program_del(Part_List *pl, program = elm_object_item_data_get(glit); assert(program != NULL); + evas_object_smart_callback_call(ap.win, SIGNAL_PROGRAM_UNSELECTED, (void *)program); msg = eina_stringshare_printf(_("deleted program \"%s\""), program->name); change = change_add(msg); diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c index 2e15ca7..d950d2d 100644 --- a/src/bin/ui/property_group.c +++ b/src/bin/ui/property_group.c @@ -601,9 +601,20 @@ _on_program_selected(void *data, Resource *res = event_info; _on_part_selected(data, obj, NULL); - _ui_property_program_unset(property); + if (!res) + { + _ui_property_program_unset(property); + return; + } _ui_property_program_set(property, res->name); } +static void +_on_program_unselected(void *data, + Evas_Object *obj, + void *event_info __UNUSED__) +{ + _on_program_selected(data, obj, NULL); +} static void _on_editor_attribute_changed(void *data, @@ -1060,6 +1071,7 @@ ui_property_group_add(Evas_Object *parent) evas_object_smart_callback_add(ap.win, SIGNAL_PART_UNSELECTED, _on_part_unselected, pd->scroller); evas_object_smart_callback_add(ap.win, SIGNAL_PART_STATE_SELECTED, _on_part_state_selected, pd->scroller); evas_object_smart_callback_add(ap.win, SIGNAL_PROGRAM_SELECTED, _on_program_selected, pd->scroller); + evas_object_smart_callback_add(ap.win, SIGNAL_PROGRAM_UNSELECTED, _on_program_unselected, pd->scroller); evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_ATTRIBUTE_CHANGED, _on_editor_attribute_changed, pd->scroller); return pd->scroller; --