diff options
Diffstat (limited to 'winaccessibility/source/service/AccObjectWinManager.cxx')
-rw-r--r-- | winaccessibility/source/service/AccObjectWinManager.cxx | 10 |
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(); } |