diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-03-05 16:22:02 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-03-05 16:22:02 +0000 |
commit | 7171f1b98b7648c5f24815004236b9fadad67445 (patch) | |
tree | 5141a8d2227b9dd27f988e5657dd4702015a27d1 /framework/source | |
parent | 5281c6d0bc5b522818fa63e836b3904bac09f860 (diff) |
INTEGRATION: CWS aquavcl05_DEV300 (1.20.72); FILE MERGED
2008/02/21 12:48:29 pl 1.20.72.3: #i67502# support disabled quickstarter
2008/02/14 21:37:16 pl 1.20.72.2: #i85963# implement StartCenter
2008/02/07 14:05:07 pl 1.20.72.1: #i67502# support no backing component case
Diffstat (limited to 'framework/source')
-rw-r--r-- | framework/source/dispatch/closedispatcher.cxx | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx index 7a608bf6fff7..d3aa313aa56f 100644 --- a/framework/source/dispatch/closedispatcher.cxx +++ b/framework/source/dispatch/closedispatcher.cxx @@ -4,9 +4,9 @@ * * $RCSfile: closedispatcher.cxx,v $ * - * $Revision: 1.20 $ + * $Revision: 1.21 $ * - * last change: $Author: ihi $ $Date: 2007-08-17 15:49:06 $ + * last change: $Author: kz $ $Date: 2008-03-05 17:22:02 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -86,6 +86,8 @@ #include <com/sun/star/awt/XTopWindow.hpp> #endif +#include "com/sun/star/beans/XFastPropertySet.hpp" + #ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_ #include <toolkit/helper/vclunohelper.hxx> #endif @@ -96,6 +98,7 @@ #include <vcl/window.hxx> #include <vcl/svapp.hxx> #include <vos/mutex.hxx> +#include <svtools/moduleoptions.hxx> //_______________________________________________ // namespace @@ -399,8 +402,10 @@ IMPL_LINK( CloseDispatcher, impl_asyncCallback, void*, EMPTYARG ) { if (eOperation == E_CLOSE_FRAME) bTerminateApp = sal_True; - else + else if( SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SSTARTMODULE) ) bEstablishBackingMode = sal_True; + else + bTerminateApp = sal_True; } } } @@ -411,7 +416,33 @@ IMPL_LINK( CloseDispatcher, impl_asyncCallback, void*, EMPTYARG ) bSuccess = implts_closeFrame(); else if (bEstablishBackingMode) + #if defined QUARTZ + { + // on mac close down, quickstarter keeps the process alive + // however if someone has shut down the quickstarter + // behave as any other platform + + bool bQuickstarterRunning = false; + // get quickstart service + try + { + css::uno::Reference< css::beans::XFastPropertySet > xSet( xSMGR->createInstance(IMPLEMENTATIONNAME_QUICKLAUNCHER), css::uno::UNO_QUERY_THROW ); + if( xSet.is() ) + { + css::uno::Any aVal( xSet->getFastPropertyValue( 0 ) ); + sal_Bool bState = sal_False; + if( aVal >>= bState ) + bQuickstarterRunning = bState; + } + } + catch( css::uno::Exception& ) + { + } + bSuccess = bQuickstarterRunning ? implts_terminateApplication() : implts_establishBackingMode(); + } + #else bSuccess = implts_establishBackingMode(); + #endif else if (bTerminateApp) bSuccess = implts_terminateApplication(); |