svx/source/accessibility/ChildrenManagerImpl.cxx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-)
New commits: commit f2fcf221a42a87a4604cecd1b6b29d4c20986ec0 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Mar 26 11:04:52 2015 +0000 survive 'enable jre' dialog interrupting CreateAccessibilityObjects Change-Id: I4395160780fc055d14554ad62c6ec757ec8dbbe1 diff --git a/svx/source/accessibility/ChildrenManagerImpl.cxx b/svx/source/accessibility/ChildrenManagerImpl.cxx index 12e4054..869c5dd 100644 --- a/svx/source/accessibility/ChildrenManagerImpl.cxx +++ b/svx/source/accessibility/ChildrenManagerImpl.cxx @@ -276,13 +276,23 @@ void ChildrenManagerImpl::Update (bool bCreateNewObjectsOnDemand) // 6. If children have to be created immediately and not on demand then // create the missing accessible objects now. - if ( ! bCreateNewObjectsOnDemand) - CreateAccessibilityObjects (maVisibleChildren); + if (!bCreateNewObjectsOnDemand) + { + //operate on a copy of the list and restore it afterwards to guard + //against the pathological case where maVisibleChildren gets modified + //by other calls to this object while CreateAccessibilityObjects + //executes which can happen when java is disabled and the "enable-java" + //dialog appears during the instantiation of the linguistic components + //triggered by the creation of shapes belonging to the a11y objects + // + //i.e. launch start-center, launch impress with java disabled and + //a java-using linguistic component installed + maVisibleChildren.swap(aChildList); + CreateAccessibilityObjects(aChildList); + maVisibleChildren.swap(aChildList); + } } - - - void ChildrenManagerImpl::CreateListOfVisibleShapes ( ChildDescriptorListType& raDescriptorList) {
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits