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
This commit is contained in:
parent
f2bae6cc6b
commit
5fceb29b5b
|
@ -15,11 +15,11 @@ token_value_get(char *src, char *key_str, char end_key, int offset, char *dst)
|
||||||
dst[count] = '\0';
|
dst[count] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static void
|
||||||
error_word_selection_anim_cb(void *data)
|
error_word_select(Evas_Object *console)
|
||||||
{
|
{
|
||||||
Evas_Object *entry = data;
|
const char *console_text = elm_entry_entry_get(console);
|
||||||
const char *console_text = elm_entry_entry_get(entry);
|
if (console_text == NULL) return;
|
||||||
|
|
||||||
char error_word[1024];
|
char error_word[1024];
|
||||||
char error_line[1024];
|
char error_line[1024];
|
||||||
|
@ -28,14 +28,14 @@ error_word_selection_anim_cb(void *data)
|
||||||
//parse edc line
|
//parse edc line
|
||||||
if (edc_token = strstr(console_text, "edc:"))
|
if (edc_token = strstr(console_text, "edc:"))
|
||||||
token_value_get(edc_token, "edc:", ' ', 0, error_line);
|
token_value_get(edc_token, "edc:", ' ', 0, error_line);
|
||||||
else return ECORE_CALLBACK_CANCEL;
|
else return;
|
||||||
|
|
||||||
//parse error word
|
//parse error word
|
||||||
if (error_token = strstr(console_text, "keyword"))
|
if (error_token = strstr(console_text, "keyword"))
|
||||||
token_value_get(error_token, "keyword", '<', 1, error_word);
|
token_value_get(error_token, "keyword", '<', 1, error_word);
|
||||||
else if (error_token = strstr(console_text, "name"))
|
else if (error_token = strstr(console_text, "name"))
|
||||||
token_value_get(error_token, "name", '<', 1, error_word);
|
token_value_get(error_token, "name", '<', 1, error_word);
|
||||||
else return ECORE_CALLBACK_CANCEL;
|
else return;
|
||||||
|
|
||||||
//find error word position
|
//find error word position
|
||||||
const char *entry_text = enventor_object_text_get(base_enventor_get());
|
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);
|
const char *matched = strstr(search_line, error_word);
|
||||||
|
|
||||||
if (matched == NULL)
|
if (matched == NULL)
|
||||||
return ECORE_CALLBACK_CANCEL;
|
return;
|
||||||
|
|
||||||
int start, end;
|
int start, end;
|
||||||
start = matched - utf8;
|
start = matched - utf8;
|
||||||
end = start + strlen(error_word);
|
end = start + strlen(error_word);
|
||||||
|
|
||||||
//select 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_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_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
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;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue