diff options
Diffstat (limited to 'toolkit/source/awt')
-rw-r--r-- | toolkit/source/awt/vclxdevice.cxx | 3 | ||||
-rw-r--r-- | toolkit/source/awt/vclxgraphics.cxx | 3 | ||||
-rw-r--r-- | toolkit/source/awt/vclxtoolkit.cxx | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/toolkit/source/awt/vclxdevice.cxx b/toolkit/source/awt/vclxdevice.cxx index da7ad04a0b18..aff22613f286 100644 --- a/toolkit/source/awt/vclxdevice.cxx +++ b/toolkit/source/awt/vclxdevice.cxx @@ -50,6 +50,9 @@ VCLXDevice::VCLXDevice() VCLXDevice::~VCLXDevice() { + //TODO: why was this empty, and everything done in ~VCLXVirtualDevice? + SolarMutexGuard g; + mpOutputDevice.reset(); } void VCLXDevice::SetCreatedWithToolkit( bool bCreatedWithToolkit ) diff --git a/toolkit/source/awt/vclxgraphics.cxx b/toolkit/source/awt/vclxgraphics.cxx index 073afa5946fd..482e29c47021 100644 --- a/toolkit/source/awt/vclxgraphics.cxx +++ b/toolkit/source/awt/vclxgraphics.cxx @@ -80,6 +80,9 @@ VCLXGraphics::~VCLXGraphics() } delete mpClipRegion; + + SolarMutexGuard g; + mpOutputDevice.reset(); } void VCLXGraphics::SetOutputDevice( OutputDevice* pOutDev ) diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx index b5ddd771926a..cf141577038e 100644 --- a/toolkit/source/awt/vclxtoolkit.cxx +++ b/toolkit/source/awt/vclxtoolkit.cxx @@ -1463,6 +1463,8 @@ css::uno::Reference< css::awt::XWindowPeer > VCLXToolkit::ImplCreateWindow( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragGestureRecognizer > SAL_CALL VCLXToolkit::getDragGestureRecognizer( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& window ) throw(::com::sun::star::uno::RuntimeException, std::exception) { + SolarMutexGuard g; + vcl::Window * pWindow = VCLUnoHelper::GetWindow( window ); if( pWindow ) |