ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=863a4a47a22771e147ed41b73a0964a00325ccda

commit 863a4a47a22771e147ed41b73a0964a00325ccda
Author: Andy Williams <[email protected]>
Date:   Thu Oct 23 21:14:46 2014 +0100

    Update the syntax highlighting to work after text set - thanks a lot to 
herdsman for the initial patch
---
 src/bin/editor/edi_editor.c | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

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;
 }

-- 


Reply via email to