summaryrefslogtreecommitdiff
path: root/svx/source/accessibility
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2003-04-28 14:27:00 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2003-04-28 14:27:00 +0000
commit55607fbce41fbcd7db942509d24e2e857532fa1f (patch)
tree6da51badd6ca63ff5a6a5547570cccbdede39672 /svx/source/accessibility
parent022a76d967de47a8b28dc717e08392120a6513f2 (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.cxx26
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);
}