From 4e6b1e05854ef839f43497468a2c85d9293017ed Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Sun, 21 Jul 2013 05:30:49 +0900 Subject: [PATCH] enventor - fix crash when toggle the dummy swallow --- src/dummy_obj.c | 5 +++++ src/edc_viewer.c | 13 +++++++++++-- src/main.c | 1 - src/statusbar.c | 2 ++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/dummy_obj.c b/src/dummy_obj.c index 4adc780..10cf4f7 100644 --- a/src/dummy_obj.c +++ b/src/dummy_obj.c @@ -147,7 +147,12 @@ void dummy_obj_del(Evas_Object *layout) free(po); } eina_list_free(dummy->swallows); + free(dummy); evas_object_data_set(layout, DUMMYOBJ, NULL); evas_object_event_callback_del(layout, EVAS_CALLBACK_DEL, layout_del_cb); + edje_object_signal_callback_del(elm_layout_edje_get(layout), + "edje,change,file", "edje", + edje_change_file_cb); + } diff --git a/src/edc_viewer.c b/src/edc_viewer.c index d818f49..ec48b25 100644 --- a/src/edc_viewer.c +++ b/src/edc_viewer.c @@ -131,8 +131,17 @@ view_dummy_toggle(view_data *vd) { Eina_Bool dummy_obj = option_dummy_swallow_get(vd->od); if (dummy_obj == vd->dummy_obj) return; - if (dummy_obj) dummy_obj_new(vd->layout); - else dummy_obj_del(vd->layout); + if (dummy_obj) + { + stats_info_msg_update(vd->sd, "Dummy Swallow Enabled"); + dummy_obj_new(vd->layout); + } + else + { + stats_info_msg_update(vd->sd, "Dummy Swallow Disabled"); + dummy_obj_del(vd->layout); + } + vd->dummy_obj = dummy_obj; } diff --git a/src/main.c b/src/main.c index 535afdb..61b08ad 100644 --- a/src/main.c +++ b/src/main.c @@ -167,7 +167,6 @@ part_highlight_toggle(app_data *ad) if (highlight) edit_cur_part_update(ad->ed); else view_part_highlight_set(ad->vd, NULL); - if (!option_stats_bar_get(ad->od)) return; if (highlight) stats_info_msg_update(ad->sd, "Part Highlighting Enabled"); else diff --git a/src/statusbar.c b/src/statusbar.c index b69ff6b..2e77e59 100644 --- a/src/statusbar.c +++ b/src/statusbar.c @@ -75,6 +75,8 @@ info_msg_timer_cb(void *data) void stats_info_msg_update(stats_data *sd, const char *msg) { + if (!option_stats_bar_get(sd->od)) return; + elm_object_part_text_set(sd->layout, "elm.text.info_msg", msg); elm_object_signal_emit(sd->layout, "elm,action,info_msg,show", ""); if (sd->info_msg_timer) ecore_timer_del(sd->info_msg_timer);