summaryrefslogtreecommitdiff
path: root/winaccessibility/source/service/AccObjectWinManager.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'winaccessibility/source/service/AccObjectWinManager.cxx')
-rw-r--r--winaccessibility/source/service/AccObjectWinManager.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index 62bd5f2a27eb..c6edbb0b0392 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -615,6 +615,16 @@ bool AccObjectWinManager::InsertAccObj( XAccessible* pXAcc,XAccessible* pParentX
if(pParentXAcc)
{
AccObject* pObj = GetAccObjByXAcc(pParentXAcc);
+
+ // insert parent if necessary
+ if (!pObj)
+ {
+ Reference<XAccessibleContext> xParentContext = pParentXAcc->getAccessibleContext();
+ assert(xParentContext.is() && "parent accessible has no context");
+ InsertAccObj(pParentXAcc, xParentContext->getAccessibleParent().get());
+ pObj = GetAccObjByXAcc(pParentXAcc);
+ }
+
if(pObj)
pWnd = pObj->GetParentHWND();
}