From: Carsten Haitzler (Rasterman) Date: Thu, 28 Mar 2013 09:51:18 +0000 (+0900) Subject: fix word start/end logic to be consistent with other toolkits. X-Git-Tag: submit/devel/efl/20131022.203902~1465 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1f1704924dae07bda296b666ab14f3d9cab9f722;p=platform%2Fupstream%2Fefl.git fix word start/end logic to be consistent with other toolkits. --- diff --git a/ChangeLog b/ChangeLog index 9750a2d..5b5cfb4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2013-03-28 Carsten Haitzler (The Rasterman) + + * Change evas_textblock_cursor_word_start() and + evas_textblock_cursor_word_end() to walk extra whitespaces when + moving up and down words that tends to look more like other + toolkits (gtk, qt). the docs dont specifically say the rules + on word finding, so being consistent is better i believe and + so we can assume the prior behavior is a bug. + 2013-03-27 Cedric Bail * Eina: Add eina_log_timing. diff --git a/NEWS b/NEWS index cf5c8fe..f76e48b 100644 --- a/NEWS +++ b/NEWS @@ -213,3 +213,4 @@ Fixes: * fix gles support to only use GL_UNPACK_ROW_LENGTH if extension exists * Fix magic failure in eina_value_array_count when array has not been allocated * Ecore_x: fix alpha set function not clear sync counter + * Fix evas word start/end find in textblock to be consistent with other toolkit logic on the matter diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 02bde45..2ecc56c 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -7015,7 +7015,7 @@ evas_textblock_cursor_word_start(Evas_Textblock_Cursor *cur) set_wordbreaks_utf32((const utf32_t *) text, len, lang, breaks); } - i = cur->pos; + for (i = cur->pos; (BREAK_AFTER(i)) && (i >= 0); i--); for ( ; i > 0 ; i--) { @@ -7050,7 +7050,7 @@ evas_textblock_cursor_word_end(Evas_Textblock_Cursor *cur) set_wordbreaks_utf32((const utf32_t *) text, len, lang, breaks); } - i = cur->pos; + for (i = cur->pos; (BREAK_AFTER(i)) && (text[i]); i++); for ( ; text[i] ; i++) {