diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2003-04-28 14:27:00 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2003-04-28 14:27:00 +0000 |
commit | 55607fbce41fbcd7db942509d24e2e857532fa1f (patch) | |
tree | 6da51badd6ca63ff5a6a5547570cccbdede39672 /svx/source/accessibility | |
parent | 022a76d967de47a8b28dc717e08392120a6513f2 (diff) |
INTEGRATION: CWS apps61beta2 (1.23.6.3.2); FILE MERGED
2003/04/15 16:47:55 bm 1.23.6.3.2.2: RESYNC: (1.23.6.3-1.27); FILE MERGED
2003/03/27 18:09:04 af 1.23.6.3.2.1: #108434# Do not dispose accessibility objects for which there is no UNO Shape.
Diffstat (limited to 'svx/source/accessibility')
-rw-r--r-- | svx/source/accessibility/ChildrenManagerImpl.cxx | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/svx/source/accessibility/ChildrenManagerImpl.cxx b/svx/source/accessibility/ChildrenManagerImpl.cxx index ddac3ecf0420..bc952d4cd0c7 100644 --- a/svx/source/accessibility/ChildrenManagerImpl.cxx +++ b/svx/source/accessibility/ChildrenManagerImpl.cxx @@ -2,9 +2,9 @@ * * $RCSfile: ChildrenManagerImpl.cxx,v $ * - * $Revision: 1.29 $ + * $Revision: 1.30 $ * - * last change: $Author: vg $ $Date: 2003-04-24 16:56:30 $ + * last change: $Author: hr $ $Date: 2003-04-28 15:27:00 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -368,8 +368,21 @@ void ChildrenManagerImpl::RemoveNonVisibleChildren ( { if (::std::find(raNewChildList.begin(), raNewChildList.end(), *I) == raNewChildList.end()) { - UnregisterAsDisposeListener (I->mxShape); - I->disposeAccessibleObject (mrContext); + // The child is disposed when there is a UNO shape from which + // the accessible shape can be created when the shape becomes + // visible again. When there is no such UNO shape then simply + // reset the descriptor but keep the accessibility object. + if (I->mxShape.is()) + { + UnregisterAsDisposeListener (I->mxShape); + I->disposeAccessibleObject (mrContext); + } + else + { + AccessibleShape* pAccessibleShape = I->GetAccessibleShape(); + pAccessibleShape->ResetState (AccessibleStateType::VISIBLE); + I->mxAccessibleShape = NULL; + } } } } @@ -993,7 +1006,10 @@ ChildDescriptor::ChildDescriptor (const Reference<XAccessible>& rxAccessibleShap mxAccessibleShape (rxAccessibleShape), mbCreateEventPending (true) { - // Empty. + // Make sure that the accessible object has the <const>VISIBLE</const> + // state set. + AccessibleShape* pAccessibleShape = GetAccessibleShape(); + pAccessibleShape->SetState (AccessibleStateType::VISIBLE); } |