diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-18 20:13:55 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-18 20:13:55 +0000 |
commit | 29bb72419494ee591e37c7346a6333eccbc15989 (patch) | |
tree | 1afcd0a55aa22e23f75ee092b7d82f2000c88650 /chrome/browser/accessibility | |
parent | 43b07e258308739c0727c937f100a985c7e2fc24 (diff) | |
download | chromium_src-29bb72419494ee591e37c7346a6333eccbc15989.zip chromium_src-29bb72419494ee591e37c7346a6333eccbc15989.tar.gz chromium_src-29bb72419494ee591e37c7346a6333eccbc15989.tar.bz2 |
Implement support for special offset constants in IAccessibleText methods.
This allows JAWS to fully support text editing.
BUG=none
TEST=manual testing with JAWS screenreader
Review URL: http://codereview.chromium.org/6469037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75418 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/accessibility')
-rw-r--r-- | chrome/browser/accessibility/browser_accessibility_win.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/browser/accessibility/browser_accessibility_win.cc b/chrome/browser/accessibility/browser_accessibility_win.cc index fcd01a5..b5bf894 100644 --- a/chrome/browser/accessibility/browser_accessibility_win.cc +++ b/chrome/browser/accessibility/browser_accessibility_win.cc @@ -1223,9 +1223,17 @@ LONG BrowserAccessibilityWin::FindBoundary( LONG start_offset, LONG direction) { LONG text_size = static_cast<LONG>(text.size()); - DCHECK(start_offset >= 0 && start_offset <= text_size); + DCHECK((start_offset >= 0 && start_offset <= text_size) || + start_offset == IA2_TEXT_OFFSET_LENGTH || + start_offset == IA2_TEXT_OFFSET_CARET); DCHECK(direction == 1 || direction == -1); + if (start_offset == IA2_TEXT_OFFSET_LENGTH) { + start_offset = text_size; + } else if (start_offset == IA2_TEXT_OFFSET_CARET) { + get_caretOffset(&start_offset); + } + if (boundary == IA2_TEXT_BOUNDARY_CHAR) { if (direction == 1 && start_offset < text_size) return start_offset + 1; |