summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--gtk/gtksettings.c9
2 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index dc69953796..c9842a07fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-15 Behdad Esfahbod <behdad@gnome.org>
+
+ Bug 547680 – fontconfig monitoring can crash apps
+
+ * gtk/gtksettings.c (settings_update_fontconfig): Clear pango cache
+ before recreating fontconfig config.
+
2008-08-15 Sven Herzberg <sven@imendio.com>
Use the g_test_*() API for this test
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 3fd7f8cf4f..32e783944d 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -2090,7 +2090,7 @@ settings_update_fontconfig (GtkSettings *settings)
static guint last_update_timestamp;
static gboolean last_update_needed;
- gint timestamp;
+ guint timestamp;
g_object_get (settings,
"gtk-fontconfig-timestamp", &timestamp,
@@ -2105,11 +2105,12 @@ settings_update_fontconfig (GtkSettings *settings)
PangoFontMap *fontmap = pango_cairo_font_map_get_default ();
gboolean update_needed = FALSE;
- if (PANGO_IS_FC_FONT_MAP (fontmap) &&
- !FcConfigUptoDate (NULL) && FcInitReinitialize ())
+ /* bug 547680 */
+ if (PANGO_IS_FC_FONT_MAP (fontmap) && !FcConfigUptoDate (NULL))
{
- update_needed = TRUE;
pango_fc_font_map_cache_clear (PANGO_FC_FONT_MAP (fontmap));
+ if (FcInitReinitialize ())
+ update_needed = TRUE;
}
last_update_timestamp = timestamp;