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
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 0022e9d..4a199a9 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 ff153b0..6e45caf 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 f7a8337..e7678b7 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);