summaryrefslogtreecommitdiff
path: root/vcl/source/opengl/OpenGLContext.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/opengl/OpenGLContext.cxx')
-rw-r--r--vcl/source/opengl/OpenGLContext.cxx13
1 files changed, 6 insertions, 7 deletions
diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx
index 70c263a01ed3..8d298a434978 100644
--- a/vcl/source/opengl/OpenGLContext.cxx
+++ b/vcl/source/opengl/OpenGLContext.cxx
@@ -102,6 +102,8 @@ OpenGLContext::~OpenGLContext()
mpNextContext->mpPrevContext = mpPrevContext;
else
pSVData->maGDIData.mpLastContext = mpPrevContext;
+
+ m_pChildWindow.disposeAndClear();
}
#ifdef DBG_UTIL
@@ -657,7 +659,7 @@ bool OpenGLContext::init( vcl::Window* pParent )
if(mbInitialized)
return true;
- m_xWindow.reset(pParent ? NULL : new vcl::Window(0, WB_NOBORDER|WB_NODIALOGCONTROL));
+ m_xWindow.reset(pParent ? nullptr : VclPtr<vcl::Window>::Create(nullptr, WB_NOBORDER|WB_NODIALOGCONTROL));
mpWindow = pParent ? pParent : m_xWindow.get();
if(m_xWindow)
m_xWindow->setPosSizePixel(0,0,0,0);
@@ -1080,8 +1082,7 @@ bool OpenGLContext::initWindow()
if( !m_pChildWindow )
{
SystemWindowData winData = generateWinData(mpWindow, false);
- m_pChildWindow = new SystemChildWindow(mpWindow, 0, &winData, false);
- m_xChildWindowGC.reset(m_pChildWindow);
+ m_pChildWindow = VclPtr<SystemChildWindow>::Create(mpWindow, 0, &winData, false);
}
if( m_pChildWindow )
@@ -1108,8 +1109,7 @@ bool OpenGLContext::initWindow()
if( !m_pChildWindow )
{
SystemWindowData winData = generateWinData(mpWindow, mbRequestLegacyContext);
- m_pChildWindow = new SystemChildWindow(mpWindow, 0, &winData, false);
- m_xChildWindowGC.reset(m_pChildWindow);
+ m_pChildWindow = VclPtr<SystemChildWindow>::Create(mpWindow, 0, &winData, false);
}
if( m_pChildWindow )
@@ -1143,8 +1143,7 @@ bool OpenGLContext::initWindow()
{
if( !m_pChildWindow )
{
- m_pChildWindow = new SystemChildWindow(mpWindow, 0, &winData, false);
- m_xChildWindowGC.reset(m_pChildWindow);
+ m_pChildWindow = VclPtr<SystemChildWindow>::Create(mpWindow, 0, &winData, false);
}
pChildSysData = m_pChildWindow->GetSystemData();
}