summaryrefslogtreecommitdiff
path: root/libnautilus-extensions
diff options
context:
space:
mode:
authorPavel Cisler <pavel@eazel.com>2001-03-06 02:42:56 +0000
committerPavel Cisler <pce@src.gnome.org>2001-03-06 02:42:56 +0000
commit53ac3b8f7cbe0420af2725ae69014a76608c1560 (patch)
tree921904856bf9813408a91ddcbdc9c6a77a2d34df /libnautilus-extensions
parentcb7e0dae196030d1788c76639655dbda2ef04ab5 (diff)
downloadnautilus-53ac3b8f7cbe0420af2725ae69014a76608c1560.tar.gz
reviewed by: Ramiro Estrugo <ramiro@eazel.com>
2001-03-05 Pavel Cisler <pavel@eazel.com> reviewed by: Ramiro Estrugo <ramiro@eazel.com> Fix 7404: Clicking on "Install" in Eazel services fails. * libnautilus-extensions/nautilus-font-manager.c: (gnome_vfs_init_if_needed), (nautilus_font_manager_for_each_font), (nautilus_font_manager_file_is_scalable_font): Add lazy GnomeVFS initialization because the nautilus font manager code now makes GnomeVFS calls.
Diffstat (limited to 'libnautilus-extensions')
-rw-r--r--libnautilus-extensions/nautilus-font-manager.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/libnautilus-extensions/nautilus-font-manager.c b/libnautilus-extensions/nautilus-font-manager.c
index b00464fe6..9d5248335 100644
--- a/libnautilus-extensions/nautilus-font-manager.c
+++ b/libnautilus-extensions/nautilus-font-manager.c
@@ -177,6 +177,25 @@ file_as_string (const char *file_name)
return result;
}
+static void
+gnome_vfs_init_if_needed (void)
+{
+ /* Caching the call go gnome_vfs_initialized to make calling this
+ * trivial. Even if this got called from multiple treads at the same time,
+ * using the static here is not a problem because gnome_vfs_init is
+ * atomic and idempotent.
+ */
+ static gboolean initialized = FALSE;
+
+ if (!initialized) {
+ initialized = gnome_vfs_initialized ();
+ if (!initialized) {
+ initialized = gnome_vfs_init();
+ }
+ }
+}
+
+
static FontDescription *
font_description_new (const char *font_file_name,
NautilusFontType font_type,
@@ -1051,6 +1070,9 @@ nautilus_font_manager_for_each_font (NautilusFontManagerCallback callback,
g_return_if_fail (callback != NULL);
+ /* We will be making GnomeVFS calls */
+ gnome_vfs_init_if_needed ();
+
/* Ensure that all the font tables exist */
ensure_global_font_table ();
@@ -1119,6 +1141,8 @@ nautilus_font_manager_file_is_scalable_font (const char *file_name)
g_return_val_if_fail (nautilus_strlen (file_name) > 0, FALSE);
+ gnome_vfs_init_if_needed ();
+
uri = g_strconcat ("file://", file_name, NULL);
info = gnome_vfs_file_info_new ();