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
_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;
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);
evas_object_del(popup);
term_unref(term);
}
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);
term_unref(term);
}
void
@ -3251,6 +3258,8 @@ term_set_title(Term *term)
EINA_SAFETY_ON_NULL_RETURN(term);
term_ref(term);
popup = elm_popup_add(term->wn->win);
evas_object_data_set(popup, "term", term);
elm_object_part_text_set(popup, "title,text", _("Set title"));