summaryrefslogtreecommitdiff
path: root/framework/source
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2008-03-05 16:22:02 +0000
committerKurt Zenker <kz@openoffice.org>2008-03-05 16:22:02 +0000
commit7171f1b98b7648c5f24815004236b9fadad67445 (patch)
tree5141a8d2227b9dd27f988e5657dd4702015a27d1 /framework/source
parent5281c6d0bc5b522818fa63e836b3904bac09f860 (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.cxx37
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();