add safe guards around term_set_title

Should avoid issues when popup is up while term is being destroyed.
This commit is contained in:
Boris Faure 2016-03-12 16:46:31 +01:00
parent 1d138fba36
commit 175e474983
1 changed files with 11 additions and 2 deletions

View File

@ -3223,7 +3223,8 @@ term_miniview_toggle(Term *term)
} }
static void static void
_set_title_ok_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) _set_title_ok_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{ {
Evas_Object *popup = data; Evas_Object *popup = data;
Term *term = evas_object_data_get(popup, "term"); Term *term = evas_object_data_get(popup, "term");
@ -3235,12 +3236,18 @@ _set_title_ok_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA
termio_user_title_set(term->termio, title); termio_user_title_set(term->termio, title);
evas_object_del(popup); evas_object_del(popup);
term_unref(term);
} }
static void static void
_set_title_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) _set_title_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{ {
Evas_Object *popup = data;
Term *term = evas_object_data_get(popup, "term");
evas_object_del(data); evas_object_del(data);
term_unref(term);
} }
void void
@ -3251,6 +3258,8 @@ term_set_title(Term *term)
EINA_SAFETY_ON_NULL_RETURN(term); EINA_SAFETY_ON_NULL_RETURN(term);
term_ref(term);
popup = elm_popup_add(term->wn->win); popup = elm_popup_add(term->wn->win);
evas_object_data_set(popup, "term", term); evas_object_data_set(popup, "term", term);
elm_object_part_text_set(popup, "title,text", _("Set title")); elm_object_part_text_set(popup, "title,text", _("Set title"));