summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2017-07-13 09:06:53 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2017-07-15 01:11:39 +0200
commitaa00f568a699dd00e2a29cb0d5c0fb1122b82f61 (patch)
tree763534e4cf5c4ca6b785ceb7be56c0788d0f18b3
parente0e8d86d861ca412cb0e7c8d713255f92ac79a9d (diff)
tdf#104883 Don't call InstallFontconfigResources if it's not available
We need to call it once because we have no other way to detect whether it's working or not. But if we receive an error the first time, we disable it from now on. Change-Id: I67dba8b65660ff7e05bdf2ddc18b565550901cd1 Reviewed-on: https://gerrit.libreoffice.org/39894 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Common.xcu5
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Common.xcs11
-rw-r--r--vcl/unx/generic/fontmanager/fontconfig.cxx9
3 files changed, 25 insertions, 0 deletions
diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu
index 7e10c8932f33..eef41786feed 100644
--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu
@@ -530,4 +530,9 @@
</prop>
</node>
</node>
+ <node oor:name="PackageKit">
+ <prop oor:name="EnableFontInstallation" oor:type="xs:boolean">
+ <value install:module="unx">true</value>
+ </prop>
+ </node>
</oor:component-data>
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 36c0b5f97fe1..c07acff7c7fe 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -6684,5 +6684,16 @@
<value>true</value>
</prop>
</group>
+ <group oor:name="PackageKit">
+ <info>
+ <desc>Contains settings related to PackageKit (Unix only).</desc>
+ </info>
+ <prop oor:name="EnableFontInstallation" oor:type="xs:boolean" oor:nillable="false">
+ <info>
+ <desc>Specifies if missing font installation should be triggered.</desc>
+ </info>
+ <value>true</value>
+ </prop>
+ </group>
</component>
</oor:component-schema>
diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx b/vcl/unx/generic/fontmanager/fontconfig.cxx
index 07614f60e399..d451f482b90b 100644
--- a/vcl/unx/generic/fontmanager/fontconfig.cxx
+++ b/vcl/unx/generic/fontmanager/fontconfig.cxx
@@ -31,6 +31,7 @@
#include <rtl/strbuf.hxx>
#include <unicode/uchar.h>
#include <unicode/uscript.h>
+#include <officecfg/Office/Common.hxx>
using namespace psp;
@@ -875,6 +876,9 @@ namespace
#if ENABLE_DBUS
IMPL_LINK_NOARG(PrintFontManager, autoInstallFontLangSupport, Timer *, void)
{
+ if (!officecfg::Office::Common::PackageKit::EnableFontInstallation::get())
+ return;
+
guint xid = get_xid_for_dbus();
if (!xid)
@@ -919,6 +923,11 @@ IMPL_LINK_NOARG(PrintFontManager, autoInstallFontLangSupport, Timer *, void)
/* check the error value */
if (error != nullptr)
{
+ // Disable this method from now on. It's simply not available on some systems
+ // and leads to an error dialog being shown each tim theis is called tdf#104883
+ std::shared_ptr<comphelper::ConfigurationChanges> batch( comphelper::ConfigurationChanges::create() );
+ officecfg::Office::Common::PackageKit::EnableFontInstallation::set(false, batch);
+ batch->commit();
g_debug("InstallFontconfigResources problem : %s", error->message);
g_error_free(error);
}