diff options
author | Rüdiger Timm <rt@openoffice.org> | 2005-03-29 11:56:21 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2005-03-29 11:56:21 +0000 |
commit | 05d2a415654e2b9324f70d92871df20ca964dc43 (patch) | |
tree | f9d5236d091dcfa428a7383430199e39185aeab4 /vcl/source | |
parent | b2310a1e9340c86bcc059ebf3c925881a511a35b (diff) |
INTEGRATION: CWS vcl37 (1.52.38); FILE MERGED
2005/03/08 10:07:38 pl 1.52.38.2: RESYNC: (1.52-1.53); FILE MERGED
2005/03/04 15:31:58 obr 1.52.38.1: #i20314# wait for the AWT EventQueue on shutdown
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/app/svmain.cxx | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index 76b0050b7781..aeacba27a9a4 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -2,9 +2,9 @@ * * $RCSfile: svmain.cxx,v $ * - * $Revision: 1.53 $ + * $Revision: 1.54 $ * - * last change: $Author: vg $ $Date: 2005-02-24 15:23:19 $ + * last change: $Author: rt $ $Date: 2005-03-29 12:56:21 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -169,6 +169,9 @@ #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #endif +#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_ +#include <com/sun/star/lang/XComponent.hpp> +#endif #include <rtl/logfile.hxx> using namespace ::rtl; @@ -265,6 +268,20 @@ BOOL SVMain() pSVData->maAppData.mbInAppMain = FALSE; } + // This is a hack to work around the problem of the asynchronous nature + // of bridging accessibility through Java: on shutdown there might still + // be some events in the AWT EventQueue, which need the SolarMutex which + // - on the other hand - is destroyed in DeInitVCL(). So empty the queue + // here .. + Reference< XComponent > xComponent(pSVData->mxAccessBridge, UNO_QUERY); + if( xComponent.is() ) + { + ULONG nCount = Application::ReleaseSolarMutex(); + xComponent->dispose(); + Application::AcquireSolarMutex(nCount); + pSVData->mxAccessBridge.clear(); + } + DeInitVCL(); return bInit; } |