diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationController.idl b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl
index 1e7cdb245d21..4c0fd46d72b1 100644
--- a/offapi/com/sun/star/drawing/framework/XConfigurationController.idl
+++ b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl
@@ -154,12 +154,6 @@ interface XConfigurationController
interface XConfigurationControllerBroadcaster;
interface XResourceFactoryManager;
- /** Check if the ConfigurationController is disposing
- @return
- When the ConfigurationController is disposing then true else false
- */
- boolean IsDisposing ();
-
/** Request the activation of a resource.
The request is processed asynchronously. Notifications about
configuration changes are sent after this call returns.
diff --git a/sd/source/ui/framework/configuration/ConfigurationController.cxx b/sd/source/ui/framework/configuration/ConfigurationController.cxx
index 6eb42998eaff..0eafd67dbace 100644
--- a/sd/source/ui/framework/configuration/ConfigurationController.cxx
+++ b/sd/source/ui/framework/configuration/ConfigurationController.cxx
@@ -153,32 +153,22 @@ ConfigurationController::Lock::~Lock (void)
//===== ConfigurationController ===============================================
ConfigurationController::ConfigurationController (void) throw()
- : ConfigurationControllerInterfaceBase(MutexOwner::maMutex),
- mpImplementation(),
- mbIsDisposed(false),
- mbIsDisposing(false)
+ : ConfigurationControllerInterfaceBase(MutexOwner::maMutex)
+ , mpImplementation()
+ , mbIsDisposed(false)
{
}
-
-
-
ConfigurationController::~ConfigurationController (void) throw()
{
}
-sal_Bool ConfigurationController::IsDisposing (void) throw (com::sun::star::uno::RuntimeException)
-{
- return mbIsDisposing;
-}
-
void SAL_CALL ConfigurationController::disposing (void)
{
if (mpImplementation.get() == NULL)
return;
- mbIsDisposing = true;
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": ConfigurationController::disposing");
SAL_INFO("sd.fwk", OSL_THIS_FUNC << ": requesting empty configuration");
// To destroy all resources an empty configuration is requested and then,
@@ -191,7 +181,6 @@ void SAL_CALL ConfigurationController::disposing (void)
// Now that all resources have been deactivated, mark the controller as
// disposed.
mbIsDisposed = true;
- mbIsDisposing = false;
// Release the listeners.
lang::EventObject aEvent;
diff --git a/sd/source/ui/framework/module/ResourceManager.cxx b/sd/source/ui/framework/module/ResourceManager.cxx
index 548d596baf6b..0cf323ca5ede 100644
--- a/sd/source/ui/framework/module/ResourceManager.cxx
+++ b/sd/source/ui/framework/module/ResourceManager.cxx
@@ -66,8 +66,7 @@ ResourceManager::ResourceManager (
mxMainViewAnchorId(FrameworkHelper::Instance(rxController)->CreateResourceId(
FrameworkHelper::msCenterPaneURL)),
msCurrentMainViewURL(),
- mbIsEnabled(true),
- mbConfigurationControllerIsDisposing(false)
+ mbIsEnabled(true)
{
Reference xControllerManager (rxController, UNO_QUERY);
if (xControllerManager.is())
@@ -76,6 +75,9 @@ ResourceManager::ResourceManager (
if (mxConfigurationController.is())
{
+ uno::Reference const xComppnent(
+ mxConfigurationController, UNO_QUERY_THROW);
+ xComppnent->addEventListener(this);
mxConfigurationController->addConfigurationChangeListener(
this,
FrameworkHelper::msResourceActivationRequestEvent,
@@ -152,8 +154,6 @@ void SAL_CALL ResourceManager::notifyConfigurationChange (
sal_Int32 nEventType = 0;
rEvent.UserData >>= nEventType;
- if (!mxConfigurationController->IsDisposing())
- mbConfigurationControllerIsDisposing = false;
switch (nEventType)
{
case ResourceActivationRequestEvent:
@@ -186,11 +186,6 @@ void SAL_CALL ResourceManager::notifyConfigurationChange (
case ResourceDeactivationRequestEvent:
if (rEvent.ResourceId->compareTo(mxMainViewAnchorId) == 0)
{
- if (mxConfigurationController->IsDisposing() && !mbConfigurationControllerIsDisposing)
- {
- mbConfigurationControllerIsDisposing = true;
- SaveResourceState();
- }
HandleMainViewSwitch(
OUString(),
rEvent.Configuration,
@@ -198,11 +193,6 @@ void SAL_CALL ResourceManager::notifyConfigurationChange (
}
else if (rEvent.ResourceId->compareTo(mxResourceId) == 0)
{
- if (mxConfigurationController->IsDisposing() && !mbConfigurationControllerIsDisposing)
- {
- mbConfigurationControllerIsDisposing = true;
- SaveResourceState();
- }
// The resource managed by this ResourceManager has been
// explicitly been requested to be hidden (maybe by us).
// Remember this setting.
@@ -296,6 +286,7 @@ void SAL_CALL ResourceManager::disposing (
if (mxConfigurationController.is()
&& rEvent.Source == mxConfigurationController)
{
+ SaveResourceState();
// Without the configuration controller this class can do nothing.
mxConfigurationController = NULL;
dispose();
diff --git a/sd/source/ui/framework/module/ResourceManager.hxx b/sd/source/ui/framework/module/ResourceManager.hxx
index caffc98c9b51..cd696619df88 100644
--- a/sd/source/ui/framework/module/ResourceManager.hxx
+++ b/sd/source/ui/framework/module/ResourceManager.hxx
@@ -109,7 +109,6 @@ private:
::rtl::OUString msCurrentMainViewURL;
bool mbIsEnabled;
- bool mbConfigurationControllerIsDisposing;
void HandleMainViewSwitch (
const ::rtl::OUString& rsViewURL,
diff --git a/sd/source/ui/inc/framework/ConfigurationController.hxx b/sd/source/ui/inc/framework/ConfigurationController.hxx
index 05ae74599af5..93c73fcc8e7a 100644
--- a/sd/source/ui/inc/framework/ConfigurationController.hxx
+++ b/sd/source/ui/inc/framework/ConfigurationController.hxx
@@ -71,8 +71,6 @@ public:
ConfigurationController (void) throw();
virtual ~ConfigurationController (void) throw();
- sal_Bool IsDisposing (void) throw (com::sun::star::uno::RuntimeException);
-
virtual void SAL_CALL disposing (void);
void ProcessEvent (void);
@@ -206,7 +204,6 @@ private:
class Implementation;
::boost::scoped_ptr mpImplementation;
bool mbIsDisposed;
- bool mbIsDisposing;
/** When the called object has already been disposed this method throws
an exception and does not return.