From 53c0b1ba80612d92849dc02e2e7a1aa97df0e6a1 Mon Sep 17 00:00:00 2001 From: "xji@google.com" Date: Wed, 21 Sep 2011 20:32:29 +0000 Subject: This is a reapply of http://src.chromium.org/viewvc/chrome?view=rev&revision=102006 fix know issues in RenderText 1. add tests. 2. change SelectWord() to use BreakIterator, so it works for Chinese and Complex script. 3. DELETE/ReplaceChar delete/replace a whole grapheme. ReplaceTextInternal should only replace one grapheme when there is no selection. 4. pointing to position outside of text returns HOME/END position. 5. based on Chrome Linux omnibox and gedit, given "abc| def", double click should select " " instead of "abc". Change test expectation. BUG=90426 TEST=compile with touchui=1 test omnibox. run views_unittests.NativeTextfieldViewsTest/TextfieldViewsModelTest Review URL: http://codereview.chromium.org/7841056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102160 0039d316-1c4b-4281-b951-d872f2087c98 --- base/i18n/break_iterator.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'base/i18n/break_iterator.h') diff --git a/base/i18n/break_iterator.h b/base/i18n/break_iterator.h index f375962..3207256 100644 --- a/base/i18n/break_iterator.h +++ b/base/i18n/break_iterator.h @@ -88,6 +88,12 @@ class BASE_I18N_EXPORT BreakIterator { // this distinction doesn't apply and it always retuns false. bool IsWord() const; + // Under BREAK_WORD mode, returns true if |position| is at the end of word or + // at the start of word. It always retuns false under BREAK_LINE and + // BREAK_NEWLINE modes. + bool IsEndOfWord(size_t position) const; + bool IsStartOfWord(size_t position) const; + // Returns the string between prev() and pos(). // Advance() must have been called successfully at least once for pos() to // have advanced to somewhere useful. -- cgit v1.1