summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2005-03-29 11:56:21 +0000
committerRüdiger Timm <rt@openoffice.org>2005-03-29 11:56:21 +0000
commit05d2a415654e2b9324f70d92871df20ca964dc43 (patch)
treef9d5236d091dcfa428a7383430199e39185aeab4 /vcl/source
parentb2310a1e9340c86bcc059ebf3c925881a511a35b (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.cxx21
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;
}