From 9848db657a9beb9a33f646d4e38167539bfb9f59 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 23 Aug 2012 07:03:18 +0000 Subject: [PATCH] Evas textblock: Fixed bug in evas_textblock_cursor_word_start. Fixed bug with 1 char word separators at the start of the text when going to the start of the word (e.g: =test). Reported by Thiep Ha. Thanks a lot. SVN revision: 75595 --- legacy/evas/ChangeLog | 6 ++++++ legacy/evas/src/lib/canvas/evas_object_textblock.c | 10 ++-------- legacy/evas/src/tests/evas_test_textblock.c | 6 ++++++ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/legacy/evas/ChangeLog b/legacy/evas/ChangeLog index a9e3ed4800..73986747f5 100644 --- a/legacy/evas/ChangeLog +++ b/legacy/evas/ChangeLog @@ -975,3 +975,9 @@ 2012-08-21 Sung W. Park (sung_) * Fix evas_gl current_context update issue when evas_gl context is deleted. + +2012-08-23 Tom Hacohen (TAsn) + + * Textblock: Fixed bug with 1 char word separators at the start of the + text when going to the start of the word (e.g: "=test"). + diff --git a/legacy/evas/src/lib/canvas/evas_object_textblock.c b/legacy/evas/src/lib/canvas/evas_object_textblock.c index e9c2a9f2e6..434db0e372 100644 --- a/legacy/evas/src/lib/canvas/evas_object_textblock.c +++ b/legacy/evas/src/lib/canvas/evas_object_textblock.c @@ -6133,16 +6133,10 @@ evas_textblock_cursor_word_start(Evas_Textblock_Cursor *cur) i = cur->pos; - /* Skip the first one. This ensures we don't point to the nul, and also - * we just don't care about it anyway. */ - if (i > 0) i--; - for ( ; i > 0 ; i--) { - if (BREAK_AFTER(i)) + if (BREAK_AFTER(i - 1)) { - /* Advance to the current char */ - i++; break; } } @@ -6194,7 +6188,7 @@ evas_textblock_cursor_word_end(Evas_Textblock_Cursor *cur) #ifdef HAVE_LINEBREAK free(breaks); #endif - return EINA_TRUE;; + return EINA_TRUE; } EAPI Eina_Bool diff --git a/legacy/evas/src/tests/evas_test_textblock.c b/legacy/evas/src/tests/evas_test_textblock.c index aa1e3d0b6c..e8498f979a 100644 --- a/legacy/evas/src/tests/evas_test_textblock.c +++ b/legacy/evas/src/tests/evas_test_textblock.c @@ -590,6 +590,12 @@ START_TEST(evas_textblock_cursor) fail_if(18 != evas_textblock_cursor_pos_get(cur)); evas_textblock_cursor_word_end(cur); fail_if(18 != evas_textblock_cursor_pos_get(cur)); + + /* Bug with 1 char word separators at paragraph start. */ + evas_object_textblock_text_markup_set(tb, "=test"); + evas_textblock_cursor_pos_set(cur, 4); + evas_textblock_cursor_word_start(cur); + fail_if(1 != evas_textblock_cursor_pos_get(cur)); } END_TB_TEST();