mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
bug 1192330
- remove ia2AccessibleText::GetModifiedText() r=surkov
There's no point in this indirection since ia2AccessibleText has direct access to this data.
This commit is contained in:
parent
3f4e64bd7e
commit
76dea62829
@ -17,7 +17,7 @@
|
||||
|
||||
using namespace mozilla::a11y;
|
||||
|
||||
StaticRefPtr<Accessible> ia2AccessibleText::sLastTextChangeAcc;
|
||||
StaticRefPtr<HyperTextAccessibleWrap> ia2AccessibleText::sLastTextChangeAcc;
|
||||
StaticAutoPtr<nsString> ia2AccessibleText::sLastTextChangeString;
|
||||
uint32_t ia2AccessibleText::sLastTextChangeStart = 0;
|
||||
uint32_t ia2AccessibleText::sLastTextChangeEnd = 0;
|
||||
@ -579,21 +579,22 @@ ia2AccessibleText::GetModifiedText(bool aGetInsertedText,
|
||||
if (!aText)
|
||||
return E_INVALIDARG;
|
||||
|
||||
uint32_t startOffset = 0, endOffset = 0;
|
||||
nsAutoString text;
|
||||
if (!sLastTextChangeAcc)
|
||||
return S_OK;
|
||||
|
||||
nsresult rv = GetModifiedText(aGetInsertedText, text,
|
||||
&startOffset, &endOffset);
|
||||
if (NS_FAILED(rv))
|
||||
return GetHRESULT(rv);
|
||||
if (aGetInsertedText != sLastTextChangeWasInsert)
|
||||
return S_OK;
|
||||
|
||||
aText->start = startOffset;
|
||||
aText->end = endOffset;
|
||||
if (sLastTextChangeAcc != this)
|
||||
return S_OK;
|
||||
|
||||
if (text.IsEmpty())
|
||||
aText->start = sLastTextChangeStart;
|
||||
aText->end = sLastTextChangeEnd;
|
||||
|
||||
if (sLastTextChangeString->IsEmpty())
|
||||
return S_FALSE;
|
||||
|
||||
aText->text = ::SysAllocStringLen(text.get(), text.Length());
|
||||
aText->text = ::SysAllocStringLen(sLastTextChangeString->get(), sLastTextChangeString->Length());
|
||||
return aText->text ? S_OK : E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
class HyperTextAccessibleWrap;
|
||||
|
||||
class ia2AccessibleText: public IAccessibleText
|
||||
{
|
||||
@ -116,11 +117,7 @@ public:
|
||||
static void InitTextChangeData();
|
||||
|
||||
protected:
|
||||
virtual nsresult GetModifiedText(bool aGetInsertedText, nsAString& aText,
|
||||
uint32_t *aStartOffset,
|
||||
uint32_t *aEndOffset) = 0;
|
||||
|
||||
static StaticRefPtr<Accessible> sLastTextChangeAcc;
|
||||
static StaticRefPtr<HyperTextAccessibleWrap> sLastTextChangeAcc;
|
||||
static StaticAutoPtr<nsString> sLastTextChangeString;
|
||||
static bool sLastTextChangeWasInsert;
|
||||
static uint32_t sLastTextChangeStart;
|
||||
|
@ -53,7 +53,8 @@ HyperTextAccessibleWrap::HandleAccEvent(AccEvent* aEvent)
|
||||
eventType == nsIAccessibleEvent::EVENT_TEXT_INSERTED) {
|
||||
Accessible* accessible = aEvent->GetAccessible();
|
||||
if (accessible && accessible->IsHyperText()) {
|
||||
sLastTextChangeAcc = accessible;
|
||||
sLastTextChangeAcc =
|
||||
static_cast<HyperTextAccessibleWrap*>(accessible->AsHyperText());
|
||||
if (!sLastTextChangeString)
|
||||
sLastTextChangeString = new nsString();
|
||||
|
||||
@ -67,30 +68,3 @@ HyperTextAccessibleWrap::HandleAccEvent(AccEvent* aEvent)
|
||||
|
||||
return HyperTextAccessible::HandleAccEvent(aEvent);
|
||||
}
|
||||
|
||||
nsresult
|
||||
HyperTextAccessibleWrap::GetModifiedText(bool aGetInsertedText,
|
||||
nsAString& aText,
|
||||
uint32_t* aStartOffset,
|
||||
uint32_t* aEndOffset)
|
||||
{
|
||||
aText.Truncate();
|
||||
*aStartOffset = 0;
|
||||
*aEndOffset = 0;
|
||||
|
||||
if (!sLastTextChangeAcc)
|
||||
return NS_OK;
|
||||
|
||||
if (aGetInsertedText != sLastTextChangeWasInsert)
|
||||
return NS_OK;
|
||||
|
||||
if (sLastTextChangeAcc != this)
|
||||
return NS_OK;
|
||||
|
||||
*aStartOffset = sLastTextChangeStart;
|
||||
*aEndOffset = sLastTextChangeEnd;
|
||||
aText.Append(*sLastTextChangeString);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -38,10 +38,6 @@ public:
|
||||
|
||||
protected:
|
||||
~HyperTextAccessibleWrap() {}
|
||||
|
||||
virtual nsresult GetModifiedText(bool aGetInsertedText, nsAString& aText,
|
||||
uint32_t *aStartOffset,
|
||||
uint32_t *aEndOffset);
|
||||
};
|
||||
|
||||
} // namespace a11y
|
||||
|
Loading…
Reference in New Issue
Block a user