зеркало из https://github.com/mozilla/gecko-dev.git
169272. Active Accessibility: unable to navigate to child nodes from node received from event. r=jgaunt, sr=alecf
This commit is contained in:
Родитель
4950c426ea
Коммит
a4bbd7ca8f
|
@ -1135,6 +1135,32 @@ void RootAccessible::GetNSAccessibleFor(VARIANT varChild, nsCOMPtr<nsIAccessible
|
|||
Accessible::GetNSAccessibleFor(varChild, aAcc);
|
||||
}
|
||||
|
||||
STDMETHODIMP RootAccessible::get_accChild(
|
||||
/* [in] */ VARIANT varChild,
|
||||
/* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *ppdispChild)
|
||||
{
|
||||
*ppdispChild = NULL;
|
||||
|
||||
if (varChild.vt == VT_I4 && varChild.lVal < 0) {
|
||||
// AccessibleObjectFromEvent() being called
|
||||
// that's why the lVal < 0
|
||||
nsCOMPtr<nsIAccessible> xpAccessible;
|
||||
GetNSAccessibleFor(varChild, xpAccessible);
|
||||
if (xpAccessible) {
|
||||
IAccessible* msaaAccessible = NewAccessible(xpAccessible, nsnull, mWnd);
|
||||
if (msaaAccessible) {
|
||||
msaaAccessible->AddRef();
|
||||
*ppdispChild = msaaAccessible;
|
||||
return S_OK;
|
||||
}
|
||||
}
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
// Otherwise, the normal get_accChild() will do
|
||||
return Accessible::get_accChild(varChild, ppdispChild);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP RootAccessible::HandleEvent(PRUint32 aEvent, nsIAccessible* aAccessible, AccessibleEventData* aData)
|
||||
{
|
||||
#ifdef SWALLOW_DOC_FOCUS_EVENTS
|
||||
|
|
|
@ -285,6 +285,10 @@ public:
|
|||
STDMETHODIMP QueryInterface(REFIID, void**);
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_accChild(
|
||||
/* [in] */ VARIANT varChild,
|
||||
/* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *ppdispChild);
|
||||
|
||||
// nsIAccessibleEventListener
|
||||
NS_DECL_NSIACCESSIBLEEVENTLISTENER
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче