diff options
author | Pavel Cisler <pavel@eazel.com> | 2001-03-06 02:42:56 +0000 |
---|---|---|
committer | Pavel Cisler <pce@src.gnome.org> | 2001-03-06 02:42:56 +0000 |
commit | 53ac3b8f7cbe0420af2725ae69014a76608c1560 (patch) | |
tree | 921904856bf9813408a91ddcbdc9c6a77a2d34df | |
parent | cb7e0dae196030d1788c76639655dbda2ef04ab5 (diff) | |
download | nautilus-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.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-font-manager.c | 24 | ||||
-rw-r--r-- | libnautilus-private/nautilus-font-manager.c | 24 |
3 files changed, 60 insertions, 0 deletions
@@ -1,3 +1,15 @@ +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. + 2001-03-05 Brian Frank <bfrank@eazel.com> * data/static_bookmarks.xml: 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 (); diff --git a/libnautilus-private/nautilus-font-manager.c b/libnautilus-private/nautilus-font-manager.c index b00464fe6..9d5248335 100644 --- a/libnautilus-private/nautilus-font-manager.c +++ b/libnautilus-private/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 (); |