diff --git a/src/bin/editor/edi_editor.c b/src/bin/editor/edi_editor.c index cdec582..4ab6155 100644 --- a/src/bin/editor/edi_editor.c +++ b/src/bin/editor/edi_editor.c @@ -496,9 +496,12 @@ _clang_load_errors(const char *path EINA_UNUSED, Edi_Editor *editor) } static void -_edi_clang_setup(const char *path, Edi_Editor *editor) +_edi_clang_setup(Edi_Editor *editor) { Evas_Object *textblock; + const char *path; + + elm_entry_file_get(editor->entry, &path, NULL); /* Clang */ /* FIXME: index should probably be global. */ @@ -527,6 +530,17 @@ _edi_clang_dispose(Edi_Editor *editor) */ #endif +static void +_text_set_done(void *data, Evas_Object *obj EINA_UNUSED, void *source EINA_UNUSED) +{ + Edi_Editor *editor = (Edi_Editor *) data; + +#if HAVE_LIBCLANG + _edi_clang_setup(editor); +#endif + +} + EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item) { Evas_Object *txt, *lines, *vbox, *box, *searchbar, *statusbar; @@ -575,12 +589,6 @@ EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item) elm_entry_scrollable_set(txt, EINA_TRUE); elm_entry_line_wrap_set(txt, EINA_FALSE); elm_entry_text_style_user_push(txt, EDITOR_FONT); - elm_entry_file_set(txt, item->path, ELM_TEXT_FORMAT_PLAIN_UTF8); - elm_entry_autosave_set(txt, EDI_CONTENT_AUTOSAVE); - evas_object_size_hint_weight_set(txt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(txt, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_show(txt); - elm_box_pack_end(box, txt); editor = calloc(1, sizeof(*editor)); editor->entry = txt; @@ -590,6 +598,16 @@ EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item) evas_object_smart_callback_add(txt, "changed,user", _changed_cb, editor); evas_object_smart_callback_add(txt, "scroll", _scroll_cb, editor); evas_object_smart_callback_add(txt, "undo,request", _undo_cb, editor); + evas_object_smart_callback_add(txt, "text,set,done", _text_set_done, editor); + + elm_entry_file_set(txt, item->path, ELM_TEXT_FORMAT_PLAIN_UTF8); + + elm_entry_autosave_set(txt, EDI_CONTENT_AUTOSAVE); + evas_object_size_hint_weight_set(txt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(txt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(txt); + elm_box_pack_end(box, txt); + edi_editor_search_add(searchbar, editor); _edi_editor_statusbar_add(statusbar, editor, item); @@ -608,9 +626,5 @@ EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item) evas_object_data_set(vbox, "editor", editor); _update_lines(editor); -#if HAVE_LIBCLANG - _edi_clang_setup(item->path, editor); -#endif - return vbox; }