diff options
Diffstat (limited to 'vcl/source/opengl/OpenGLContext.cxx')
-rw-r--r-- | vcl/source/opengl/OpenGLContext.cxx | 13 |
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(); } |