summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-11-19 16:06:43 +0100
committerStephan Bergmann <sbergman@redhat.com>2012-11-19 16:14:12 +0100
commita05e1e4967a21f3dd5a49215d97df99a7ec84f18 (patch)
tree902544cb970051a4027331c3f01440bcc56b4855
parent8648c974ea5e222027a5ac1c9a01cd9ac6e344a8 (diff)
fdo#57224: Fix logic of considering optional/ambiguous value as "disabled"
...so that only a "not-registered" that is non-optional and non-ambiguous is considered as "disabled" by user's intention. Other combinations can occur for broken extensions (that will thus become disabled again anyway when we try to automatically enable them) and for originally enabled extensions for which cleanExtensionCache in desktop/source/app/app.cxx has forecefully removed user/uno_packages/cache/registry/com.sun.star.comp.deployment.component.PackageRegistryBackend/unorc (and which should rather be kept enabled). Change-Id: Ic85b609ec9b3634cfa94a77151d42c07b9488030
-rw-r--r--desktop/source/deployment/manager/dp_extensionmanager.cxx6
1 files changed, 3 insertions, 3 deletions
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index b0c65e026330..5f701c609bae 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -1245,9 +1245,9 @@ void ExtensionManager::reinstallDeployedExtensions(
{
beans::Optional< beans::Ambiguous< sal_Bool > > registered(
extensions[pos]->isRegistered(xAbortChannel, xCmdEnv));
- if (!registered.IsPresent
- || registered.Value.IsAmbiguous
- || !registered.Value.Value)
+ if (registered.IsPresent &&
+ !(registered.Value.IsAmbiguous ||
+ registered.Value.Value))
{
const OUString id = dp_misc::getIdentifier(extensions[ pos ]);
OSL_ASSERT(!id.isEmpty());