diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-11-19 16:06:43 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-11-19 16:14:12 +0100 |
commit | a05e1e4967a21f3dd5a49215d97df99a7ec84f18 (patch) | |
tree | 902544cb970051a4027331c3f01440bcc56b4855 | |
parent | 8648c974ea5e222027a5ac1c9a01cd9ac6e344a8 (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.cxx | 6 |
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()); |