sw: more double dispose work.

Change-Id: I746623d14a96bb1b2756e49da4d41adf9dbc55ca
diff --git a/reportdesign/source/ui/report/DesignView.cxx b/reportdesign/source/ui/report/DesignView.cxx
index ed975eb..8d17283 100644
--- a/reportdesign/source/ui/report/DesignView.cxx
+++ b/reportdesign/source/ui/report/DesignView.cxx
@@ -206,7 +206,7 @@ bool ODesignView::PreNotify( NotifyEvent& rNEvt )
                    const vcl::KeyCode& rCode = pKeyEvent->GetKeyCode();
                    util::URL aUrl;
                    aUrl.Complete = m_pAccel->findCommand(svt::AcceleratorExecute::st_VCLKey2AWTKey(rCode));
                    if ( aUrl.Complete.isEmpty() || !m_rController.isCommandEnabled( aUrl.Complete ) )
                    if ( aUrl.Complete.isEmpty() || !m_xController->isCommandEnabled( aUrl.Complete ) )
                        nRet = false;
                }
            }
diff --git a/sw/source/uibase/docvw/FrameControlsManager.cxx b/sw/source/uibase/docvw/FrameControlsManager.cxx
index 7cd0e7f..e168096 100644
--- a/sw/source/uibase/docvw/FrameControlsManager.cxx
+++ b/sw/source/uibase/docvw/FrameControlsManager.cxx
@@ -34,6 +34,11 @@ SwFrameControlsManager::SwFrameControlsManager( const SwFrameControlsManager& rC
{
}

void SwFrameControlsManager::dispose()
{
    m_aControls.clear();
}

const SwFrameControlsManager& SwFrameControlsManager::operator=( const SwFrameControlsManager& rCopy )
{
    m_pEditWin = rCopy.m_pEditWin;
diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx
index d13b4b1..01d95ba 100644
--- a/sw/source/uibase/docvw/PageBreakWin.cxx
+++ b/sw/source/uibase/docvw/PageBreakWin.cxx
@@ -124,9 +124,13 @@ void SwPageBreakWin::dispose()
    m_bDestroyed = true;
    m_aFadeTimer.Stop();

    delete m_pPopupMenu;
    delete m_pLine;
    m_pLine = NULL;
    delete m_pPopupMenu;
    m_pPopupMenu = NULL;
    delete m_pMousePt;
    m_pMousePt = NULL;

    MenuButton::dispose();
}

diff --git a/sw/source/uibase/docvw/SidebarWin.cxx b/sw/source/uibase/docvw/SidebarWin.cxx
index a7a7371..21e6404 100644
--- a/sw/source/uibase/docvw/SidebarWin.cxx
+++ b/sw/source/uibase/docvw/SidebarWin.cxx
@@ -142,6 +142,9 @@ SwSidebarWin::~SwSidebarWin()

void SwSidebarWin::dispose()
{
    if (IsDisposed())
        return;

    mrMgr.DisconnectSidebarWinFromFrm( *(mrSidebarItem.maLayoutInfo.mpAnchorFrm),
                                       *this );

@@ -206,6 +209,7 @@ void SwSidebarWin::dispose()

    if (mnEventId)
        Application::RemoveUserEvent( mnEventId );

    vcl::Window::dispose();
}

diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index 7502abf..20a43c0 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -4974,16 +4974,29 @@ SwEditWin::~SwEditWin()
void SwEditWin::dispose()
{
    m_aKeyInputTimer.Stop();

    delete m_pShadCrsr;
    m_pShadCrsr = NULL;

    delete m_pRowColumnSelectionStart;
    m_pRowColumnSelectionStart = NULL;

    if( m_pQuickHlpData->m_bIsDisplayed && m_rView.GetWrtShellPtr() )
        m_pQuickHlpData->Stop( m_rView.GetWrtShell() );
    g_bExecuteDrag = false;
    delete m_pApplyTempl;
    m_pApplyTempl = NULL;

    m_rView.SetDrawFuncPtr(NULL);

    delete m_pUserMarker;
    m_pUserMarker = NULL;

    delete m_pAnchorMarker;
    m_pAnchorMarker = NULL;

    m_aFrameControlsManager.dispose();

    vcl::Window::dispose();
}

diff --git a/sw/source/uibase/inc/FrameControlsManager.hxx b/sw/source/uibase/inc/FrameControlsManager.hxx
index 75585ea..42584a1 100644
--- a/sw/source/uibase/inc/FrameControlsManager.hxx
+++ b/sw/source/uibase/inc/FrameControlsManager.hxx
@@ -35,7 +35,8 @@ class SwFrameControlsManager

    public:
        SwFrameControlsManager( SwEditWin* pEditWin );
        ~SwFrameControlsManager( );
        ~SwFrameControlsManager();
        void dispose();

        SwFrameControlsManager( const SwFrameControlsManager& rCopy );
        const SwFrameControlsManager& operator=( const SwFrameControlsManager& rCopy );
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 101ba16..d21b70c 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -2530,6 +2530,8 @@ void Window::GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder,

void Window::Enable( bool bEnable, bool bChild )
{
    if ( IsDisposed() )
        return;

    if ( !bEnable )
    {