diff src/xsettings.c @ 106201:01190029e5d3

Set Xft defaults if no XSETTING is found, better default for Gtk+ font dialog. * xfns.c (Fx_select_font): Try to convert Fontconfig name to Gtk name because that is what Gtk+ font dialog understands. * font.c (font_make_object, Fcopy_font_spec): Use Fcopy_alist instead of Fcopy_sequence. (font_open_by_name): Put name given into QCname for font-object returned. * frame.c (x_set_font): Save original font name as frame parameter font-parameter. * xsettings.c (set_default_xft_settings): New function. (init_xfd_settings): Call set_default_xft_settings if no XSETTINGS window is found.
author Jan Djärv <jan.h.d@swipnet.se>
date Mon, 23 Nov 2009 08:55:08 +0000
parents 9b6f45dd8386
children 7ddab4671153
line wrap: on
line diff
--- a/src/xsettings.c	Mon Nov 23 05:37:34 2009 +0000
+++ b/src/xsettings.c	Mon Nov 23 08:55:08 2009 +0000
@@ -368,6 +368,25 @@
 }
 
 static void
+set_default_xft_settings (dpyinfo)
+     struct x_display_info *dpyinfo;
+{
+  FcPattern *pat;
+  pat = FcPatternCreate ();
+  XftDefaultSubstitute (dpyinfo->display,
+                        XScreenNumberOfScreen (dpyinfo->screen),
+                        pat);
+
+  FcPatternDel (pat, FC_ANTIALIAS);
+  FcPatternAddBool (pat, FC_ANTIALIAS, FcTrue);
+  FcPatternDel (pat, FC_HINTING);
+  FcPatternAddBool (pat, FC_HINTING, FcTrue);
+  FcPatternDel (pat, FC_HINT_STYLE);
+  FcPatternAddInteger (pat, FC_HINT_STYLE,FC_HINT_MEDIUM);
+  XftDefaultSet (dpyinfo->display, pat);
+}
+
+static void
 apply_xft_settings (dpyinfo, send_event_p)
      struct x_display_info *dpyinfo;
      int send_event_p;
@@ -546,6 +565,8 @@
   get_prop_window (dpyinfo);
   if (dpyinfo->xsettings_window != None)
     apply_xft_settings (dpyinfo, False);
+  else
+    set_default_xft_settings (dpyinfo);
 
   UNBLOCK_INPUT;