summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-03-13 13:42:34 +0200
committerMichael Meeks <michael.meeks@collabora.com>2015-04-10 10:56:19 +0100
commit6cb33f4dd9967e1793ec2547fc3b7f9a3bc969d8 (patch)
tree705c6ddefd7cefb8dcc3ad3a7ad5166c8dccaa49 /vcl
parentd7a84ce8406096b455d81f50cd50ca2e877adc06 (diff)
vclwidget: call disposeOnce from VclPtr::disposeAndClear
Change-Id: Ia8c438984409a7b719f5756f9be30ba9e90c57dc
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/window.cxx17
1 files changed, 7 insertions, 10 deletions
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 5f53a4d25326..6ee6dc001d3f 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -139,18 +139,15 @@ bool Window::IsDisposed() const
void Window::disposeOnce()
{
- if (!IsDisposed())
- dispose();
+ if (!mpWindowImpl || mpWindowImpl->mbInDispose)
+ return;
+ mpWindowImpl->mbInDispose = true;
+ dispose();
}
void Window::dispose()
{
- if (IsDisposed())
- return;
-
- assert( !mpWindowImpl->mbInDispose && "vcl::Window - already in dispose()" );
- mpWindowImpl->mbInDispose = true;
-
+ assert( mpWindowImpl && mpWindowImpl->mbInDispose ); // should only be called from disposeOnce()
assert( !mpWindowImpl->mpParent ||
!mpWindowImpl->mpParent->IsDisposed() ||
"vcl::Window child should have its parent disposed first" );
@@ -605,8 +602,8 @@ WindowImpl::WindowImpl( WindowType nType )
mpOverlapWindow = NULL; // first overlap parent
mpBorderWindow = NULL; // Border-Window
mpClientWindow = NULL; // Client-Window of a FrameWindow
- mpParent = NULL; // parent (inkl. BorderWindow)
- mpRealParent = NULL; // real parent (exkl. BorderWindow)
+ mpParent = NULL; // parent (incl. BorderWindow)
+ mpRealParent = NULL; // real parent (excl. BorderWindow)
mpFirstChild = NULL; // first child window
mpLastChild = NULL; // last child window
mpFirstOverlap = NULL; // first overlap window (only set in overlap windows)