jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=5fceb29b5b62a6be7b0706717d72efd04bd010bc
commit 5fceb29b5b62a6be7b0706717d72efd04bd010bc Author: taehyub <taehyub....@samsung.com> Date: Fri Feb 19 16:10:23 2016 +0900 fix the error word select function Summary: removed the animator creation when mouse double click in console box. If use animator, there can be unexpected behavior like selection region is deleted when long script is loaded. @fix Reviewers: Hermet, Jaehyun_Cho, NikaWhite Differential Revision: https://phab.enlightenment.org/D3714 --- src/bin/console.c | 41 +++++++---------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/src/bin/console.c b/src/bin/console.c index 7e01687..ebca8e4 100644 --- a/src/bin/console.c +++ b/src/bin/console.c @@ -15,11 +15,11 @@ token_value_get(char *src, char *key_str, char end_key, int offset, char *dst) dst[count] = '\0'; } -static Eina_Bool -error_word_selection_anim_cb(void *data) +static void +error_word_select(Evas_Object *console) { - Evas_Object *entry = data; - const char *console_text = elm_entry_entry_get(entry); + const char *console_text = elm_entry_entry_get(console); + if (console_text == NULL) return; char error_word[1024]; char error_line[1024]; @@ -28,14 +28,14 @@ error_word_selection_anim_cb(void *data) //parse edc line if (edc_token = strstr(console_text, "edc:")) token_value_get(edc_token, "edc:", ' ', 0, error_line); - else return ECORE_CALLBACK_CANCEL; + else return; //parse error word if (error_token = strstr(console_text, "keyword")) token_value_get(error_token, "keyword", '<', 1, error_word); else if (error_token = strstr(console_text, "name")) token_value_get(error_token, "name", '<', 1, error_word); - else return ECORE_CALLBACK_CANCEL; + else return; //find error word position const char *entry_text = enventor_object_text_get(base_enventor_get()); @@ -48,36 +48,14 @@ error_word_selection_anim_cb(void *data) const char *matched = strstr(search_line, error_word); if (matched == NULL) - return ECORE_CALLBACK_CANCEL; + return; int start, end; start = matched - utf8; end = start + strlen(error_word); //select error word - //here, we insert the syntax lock, unlock function - //before and after selection region function - //to prevent releasing the selection region. - enventor_object_syntax_color_full_apply(base_enventor_get(), EINA_FALSE); enventor_object_select_region_set(base_enventor_get(), start, end); - enventor_object_syntax_color_partial_apply(base_enventor_get(), 10); - - return ECORE_CALLBACK_CANCEL; -} - -void -error_word_select(Evas_Object *console) -{ - ecore_animator_add(error_word_selection_anim_cb, console); -} - -static void -console_mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, - void *evnent_info) -{ - if (((Evas_Event_Mouse_Down*)evnent_info)->flags & - EVAS_BUTTON_DOUBLE_CLICK) - error_word_select(obj); } /*****************************************************************************/ @@ -103,10 +81,5 @@ console_create(Evas_Object *parent) EVAS_HINT_EXPAND); evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_event_callback_add(obj, - EVAS_CALLBACK_MOUSE_DOWN, - console_mouse_down_cb, - NULL); - return obj; } --