apply_xft_settings (Display_Info *dpyinfo,
struct xsettings *settings)
{
-#ifdef HAVE_XFT
+#if defined USE_CAIRO || defined HAVE_XFT
FcPattern *pat;
struct xsettings oldsettings;
bool changed = false;
+#ifndef HAVE_XFT
+ cairo_font_options_t *options;
+#endif
+
memset (&oldsettings, 0, sizeof (oldsettings));
pat = FcPatternCreate ();
+#ifdef HAVE_XFT
XftDefaultSubstitute (dpyinfo->display,
XScreenNumberOfScreen (dpyinfo->screen),
pat);
+#else
+ FcConfigSubstitute (NULL, pat, FcMatchPattern);
+ options = cairo_font_options_create ();
+ cairo_ft_font_options_substitute (options, pat);
+ cairo_font_options_destroy (options);
+ FcDefaultSubstitute (pat);
+#endif
FcPatternGetBool (pat, FC_ANTIALIAS, 0, &oldsettings.aa);
FcPatternGetBool (pat, FC_HINTING, 0, &oldsettings.hinting);
#ifdef FC_HINT_STYLE
- sizeof "%f")
};
char buf[sizeof format + d_formats * d_growth + lf_formats * lf_growth];
-
+#ifdef HAVE_XFT
XftDefaultSet (dpyinfo->display, pat);
+#else
+ FcPatternDestroy (pat);
+#endif
store_config_changed_event (Qfont_render,
XCAR (dpyinfo->name_list_element));
Vxft_settings