summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-font-factory.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnautilus-private/nautilus-font-factory.c')
-rw-r--r--libnautilus-private/nautilus-font-factory.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/libnautilus-private/nautilus-font-factory.c b/libnautilus-private/nautilus-font-factory.c
index c6c894cef..09abdb6e6 100644
--- a/libnautilus-private/nautilus-font-factory.c
+++ b/libnautilus-private/nautilus-font-factory.c
@@ -273,12 +273,20 @@ nautilus_font_factory_get_font_by_family (const char *family,
GdkFont *
nautilus_font_factory_get_font_from_preferences (guint size_in_pixels)
{
- char *family;
- GdkFont *font;
+ static gboolean icon_view_font_auto_value_registered;
+ static const char *icon_view_font_auto_value;
- family = nautilus_preferences_get (NAUTILUS_PREFERENCES_ICON_VIEW_FONT);
- font = nautilus_font_factory_get_font_by_family (family, size_in_pixels);
- g_free (family);
+ /* Can't initialize this in initialize_class, because no font factory
+ * instance may yet exist when this is called.
+ */
+ if (!icon_view_font_auto_value_registered) {
+ nautilus_preferences_add_auto_string (NAUTILUS_PREFERENCES_ICON_VIEW_FONT,
+ &icon_view_font_auto_value);
+ icon_view_font_auto_value_registered = TRUE;
+ }
- return font;
+ /* FIXME: We hardwire icon view font here, but some callers probably
+ * expect default font instead.
+ */
+ return nautilus_font_factory_get_font_by_family (icon_view_font_auto_value, size_in_pixels);
}