author | Trevor Saunders <tbsaunde@tbsaunde.org> |
Mon, 08 Jun 2015 16:28:06 -0400 | |
changeset 253395 | 6dc447b14cd7aee4f82e39f3898042570d0dedac |
parent 253394 | eda42fc9d9284c274a02b53cf06e4b21d23db507 |
child 253396 | a7c526448011ea8dd8ff3df4e9a3b939043950aa |
push id | 29065 |
push user | ryanvm@gmail.com |
push date | Fri, 17 Jul 2015 14:26:32 +0000 |
treeherder | mozilla-central@911935404233 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | lsocks |
bugs | 1173876 |
milestone | 42.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/accessible/atk/nsMaiInterfaceText.cpp +++ b/accessible/atk/nsMaiInterfaceText.cpp @@ -158,58 +158,63 @@ getTextCB(AtkText *aText, gint aStartOff return (cautoStr.get()) ? g_strdup(cautoStr.get()) : nullptr; } static gchar* getTextAfterOffsetCB(AtkText *aText, gint aOffset, AtkTextBoundary aBoundaryType, gint *aStartOffset, gint *aEndOffset) { + nsAutoString autoStr; + int32_t startOffset = 0, endOffset = 0; AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); - if (!accWrap) - return nullptr; + if (accWrap) { + HyperTextAccessible* text = accWrap->AsHyperText(); + if (!text || !text->IsTextRole()) + return nullptr; - HyperTextAccessible* text = accWrap->AsHyperText(); - if (!text || !text->IsTextRole()) - return nullptr; - - nsAutoString autoStr; - int32_t startOffset = 0, endOffset = 0; - text->TextAfterOffset(aOffset, aBoundaryType, &startOffset, &endOffset, autoStr); + text->TextAfterOffset(aOffset, aBoundaryType, &startOffset, &endOffset, autoStr); + ConvertTexttoAsterisks(accWrap, autoStr); + } else if (ProxyAccessible* proxy = GetProxy(ATK_OBJECT(aText))) { + proxy->GetTextAfterOffset(aOffset, aBoundaryType, autoStr, &startOffset, + &endOffset); + } *aStartOffset = startOffset; *aEndOffset = endOffset; - ConvertTexttoAsterisks(accWrap, autoStr); NS_ConvertUTF16toUTF8 cautoStr(autoStr); return (cautoStr.get()) ? g_strdup(cautoStr.get()) : nullptr; } static gchar* getTextAtOffsetCB(AtkText *aText, gint aOffset, AtkTextBoundary aBoundaryType, gint *aStartOffset, gint *aEndOffset) { + nsAutoString autoStr; + int32_t startOffset = 0, endOffset = 0; AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); - if (!accWrap) - return nullptr; - - HyperTextAccessible* text = accWrap->AsHyperText(); - if (!text || !text->IsTextRole()) - return nullptr; + if (accWrap) { + HyperTextAccessible* text = accWrap->AsHyperText(); + if (!text || !text->IsTextRole()) + return nullptr; - nsAutoString autoStr; - int32_t startOffset = 0, endOffset = 0; text->TextAtOffset(aOffset, aBoundaryType, &startOffset, &endOffset, autoStr); - *aStartOffset = startOffset; - *aEndOffset = endOffset; + ConvertTexttoAsterisks(accWrap, autoStr); + } else if (ProxyAccessible* proxy = GetProxy(ATK_OBJECT(aText))) { + proxy->GetTextAtOffset(aOffset, aBoundaryType, autoStr, &startOffset, + &endOffset); + } - ConvertTexttoAsterisks(accWrap, autoStr); - NS_ConvertUTF16toUTF8 cautoStr(autoStr); - return (cautoStr.get()) ? g_strdup(cautoStr.get()) : nullptr; + *aStartOffset = startOffset; + *aEndOffset = endOffset; + + NS_ConvertUTF16toUTF8 cautoStr(autoStr); + return (cautoStr.get()) ? g_strdup(cautoStr.get()) : nullptr; } static gunichar getCharacterAtOffsetCB(AtkText* aText, gint aOffset) { AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); if (accWrap) { HyperTextAccessible* text = accWrap->AsHyperText(); @@ -228,32 +233,35 @@ getCharacterAtOffsetCB(AtkText* aText, g return 0; } static gchar* getTextBeforeOffsetCB(AtkText *aText, gint aOffset, AtkTextBoundary aBoundaryType, gint *aStartOffset, gint *aEndOffset) { - AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); - if (!accWrap) - return nullptr; - - HyperTextAccessible* text = accWrap->AsHyperText(); - if (!text || !text->IsTextRole()) - return nullptr; - nsAutoString autoStr; int32_t startOffset = 0, endOffset = 0; - text->TextBeforeOffset(aOffset, aBoundaryType, - &startOffset, &endOffset, autoStr); + AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText)); + if (accWrap) { + HyperTextAccessible* text = accWrap->AsHyperText(); + if (!text || !text->IsTextRole()) + return nullptr; + + text->TextBeforeOffset(aOffset, aBoundaryType, + &startOffset, &endOffset, autoStr); + ConvertTexttoAsterisks(accWrap, autoStr); + } else if (ProxyAccessible* proxy = GetProxy(ATK_OBJECT(aText))) { + proxy->GetTextBeforeOffset(aOffset, aBoundaryType, autoStr, &startOffset, + &endOffset); + } + *aStartOffset = startOffset; *aEndOffset = endOffset; - ConvertTexttoAsterisks(accWrap, autoStr); NS_ConvertUTF16toUTF8 cautoStr(autoStr); return (cautoStr.get()) ? g_strdup(cautoStr.get()) : nullptr; } static gint getCaretOffsetCB(AtkText *aText) { AccessibleWrap* accWrap = GetAccessibleWrap(ATK_OBJECT(aText));