vcl: add assert and improve lifecycle test.

Change-Id: Ic70a890dae41b04d6dd1f19cbea419fe5a794af3
diff --git a/vcl/qa/cppunit/lifecycle.cxx b/vcl/qa/cppunit/lifecycle.cxx
index 3492b52..dc6bbf2 100644
--- a/vcl/qa/cppunit/lifecycle.cxx
+++ b/vcl/qa/cppunit/lifecycle.cxx
@@ -90,6 +90,7 @@ void LifecycleTest::testParentedWidgets()
    VclPtr<WorkWindow> xWin(new WorkWindow((vcl::Window *)NULL,
                                                 WB_APP|WB_STDWORK));
    CPPUNIT_ASSERT(xWin.get() != NULL);
    xWin->Show();
    testWidgets(xWin);
}

diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index ac250c6..101ba16 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -144,6 +144,10 @@ void Window::dispose()
    assert( !mpWindowImpl->mbInDispose && "vcl::Window - already in dispose()" );
    mpWindowImpl->mbInDispose = true;

    assert( !mpWindowImpl->mpParent ||
            !mpWindowImpl->mpParent->IsDisposed() ||
            "vcl::Window child should have its parent disposed first" );

    // remove Key and Mouse events issued by Application::PostKey/MouseEvent
    Application::RemoveMouseAndKeyEvents( this );