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 /desktop | |
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
Diffstat (limited to 'desktop')
-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()); |