summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-10-05 14:09:56 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-10-05 14:14:06 +0200
commit8a334eb222906909bf77006687411ff9e03d9da3 (patch)
tree939afedcdfb9272d6c42381a350899c9ebdc0fd1 /sc
parent0fc0abb549dd299900f64e92272d910281e94413 (diff)
tdf#94687: Keep original ordering of overall initialization steps
...between ScGridWindow::CreateAccessible, ScAccessibleDocument ctor, and ScAccessibleDocument::Init, by introducing ScAccessibleDocument::PreInit into which the this-using parts of the ScAccessibleDocument ctor are offloaded now. This is a follow-up to 6f1e77fc600f776433a759172323b4afec3d811e, "rhbz#1264753: Avoid this being release()ed to 0 in ScAccessibleDocument ctor;" turns out my fears that the slight re-ordering of initialization code coulb break something were well-founded after all. Change-Id: Ibf62983030d7abbe4b1ead9ee5add5f9627e7d60
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocument.cxx6
-rw-r--r--sc/source/ui/inc/AccessibleDocument.hxx2
-rw-r--r--sc/source/ui/view/gridwin5.cxx1
3 files changed, 8 insertions, 1 deletions
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 0022e9ddc30a..4a199a984812 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -1415,7 +1415,7 @@ ScAccessibleDocument::ScAccessibleDocument(
maVisArea = GetVisibleArea_Impl();
}
-void ScAccessibleDocument::Init()
+void ScAccessibleDocument::PreInit()
{
if (mpViewShell)
{
@@ -1442,6 +1442,10 @@ void ScAccessibleDocument::Init()
AddChild(xAcc, false);
}
}
+}
+
+void ScAccessibleDocument::Init()
+{
if(!mpChildrenShapes)
mpChildrenShapes = new ScChildrenShapes(this, mpViewShell, meSplitPos);
}
diff --git a/sc/source/ui/inc/AccessibleDocument.hxx b/sc/source/ui/inc/AccessibleDocument.hxx
index ff153b023eb4..6e45caf9958e 100644
--- a/sc/source/ui/inc/AccessibleDocument.hxx
+++ b/sc/source/ui/inc/AccessibleDocument.hxx
@@ -63,6 +63,8 @@ public:
ScTabViewShell* pViewShell,
ScSplitPos eSplitPos);
+ void PreInit();
+
virtual void Init() SAL_OVERRIDE;
DECL_LINK_TYPED( WindowChildEventListener, VclWindowEvent&, void );
diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx
index f7a83376905b..e7678b7c025a 100644
--- a/sc/source/ui/view/gridwin5.cxx
+++ b/sc/source/ui/view/gridwin5.cxx
@@ -462,6 +462,7 @@ com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
ScAccessibleDocument* pAccessibleDocument =
new ScAccessibleDocument(GetAccessibleParentWindow()->GetAccessible(),
pViewData->GetViewShell(), eWhich);
+ pAccessibleDocument->PreInit();
xAcc = pAccessibleDocument;
SetAccessible(xAcc);