edc_editor: don't access the danling edit object.

This commit is contained in:
Hermet Park 2019-02-28 13:26:59 +09:00
parent 5e87363560
commit 60e51fccbe
2 changed files with 20 additions and 9 deletions

View File

@ -897,15 +897,18 @@ autocomp_target_set(edit_data *ed)
if (ad->ed)
{
entry = edit_entry_get(ad->ed);
evas_object_smart_callback_del(entry, "changed,user", entry_changed_cb);
evas_object_smart_callback_del(entry, "cursor,changed",
entry_cursor_changed_cb);
evas_object_smart_callback_del(entry, "cursor,changed,manual",
entry_cursor_changed_manual_cb);
evas_object_smart_callback_del(entry, "unfocused", anchor_unfocused_cb);
evas_object_smart_callback_del(entry, "press", entry_press_cb);
evas_object_event_callback_del(entry, EVAS_CALLBACK_MOVE,
entry_move_cb);
if (entry)
{
evas_object_smart_callback_del(entry, "changed,user", entry_changed_cb);
evas_object_smart_callback_del(entry, "cursor,changed",
entry_cursor_changed_cb);
evas_object_smart_callback_del(entry, "cursor,changed,manual",
entry_cursor_changed_manual_cb);
evas_object_smart_callback_del(entry, "unfocused", anchor_unfocused_cb);
evas_object_smart_callback_del(entry, "press", entry_press_cb);
evas_object_event_callback_del(entry, EVAS_CALLBACK_MOVE,
entry_move_cb);
}
evas_object_del(ad->anchor);
ad->anchor = NULL;
ad->ed = NULL;

View File

@ -1480,6 +1480,13 @@ edit_cur_indent_depth_get(edit_data *ed)
return indent_space_get(syntax_indent_data_get(ed->sh));
}
static void
edit_obj_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
edit_data *ed = data;
ed->en_edit = NULL;
}
edit_data *
edit_init(Enventor_Object *enventor, Enventor_Item *it)
{
@ -1571,6 +1578,7 @@ edit_init(Enventor_Object *enventor, Enventor_Item *it)
edit_selection_cleared_cb, ed);
evas_object_smart_callback_add(en_edit, "selection,start",
edit_selection_start_cb, ed);
evas_object_event_callback_add(en_edit, EVAS_CALLBACK_DEL, edit_obj_del_cb, ed);
evas_object_size_hint_weight_set(en_edit, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en_edit, EVAS_HINT_FILL, EVAS_HINT_FILL);