… | |
… | |
92 | #endif |
92 | #endif |
93 | |
93 | |
94 | #if XFT |
94 | #if XFT |
95 | { CS_UNICODE, "xft:Andale Mono" }, |
95 | { CS_UNICODE, "xft:Andale Mono" }, |
96 | { CS_UNICODE, "xft:Arial Unicode MS" }, |
96 | { CS_UNICODE, "xft:Arial Unicode MS" }, |
97 | { CS_UNICODE, "xft:FreeMono" }, |
|
|
98 | #endif |
97 | #endif |
99 | { CS_UNICODE, "-*-lucidatypewriter-*-*-*-*-*-*-*-*-m-*-iso10646-1" }, |
98 | { CS_UNICODE, "-*-lucidatypewriter-*-*-*-*-*-*-*-*-m-*-iso10646-1" }, |
100 | { CS_UNICODE, "-*-unifont-*-*-*-*-*-*-*-*-c-*-iso10646-1" }, |
99 | { CS_UNICODE, "-*-unifont-*-*-*-*-*-*-*-*-c-*-iso10646-1" }, |
101 | { CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-c-*-iso10646-1" }, |
100 | { CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-c-*-iso10646-1" }, |
102 | { CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-m-*-iso10646-1" }, |
101 | { CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-m-*-iso10646-1" }, |
|
|
102 | #if XFT |
|
|
103 | // FreeMono is usually uglier than x fonts, so try last only. |
|
|
104 | //{ CS_UNICODE, "xft:FreeMono" }, |
|
|
105 | #endif |
103 | |
106 | |
104 | { CS_UNKNOWN, 0 } |
107 | { CS_UNKNOWN, 0 } |
105 | }; |
108 | }; |
106 | |
109 | |
107 | ///////////////////////////////////////////////////////////////////////////// |
110 | ///////////////////////////////////////////////////////////////////////////// |
… | |
… | |
880 | FcPatternAddInteger (p, FC_WEIGHT, prop.weight); |
883 | FcPatternAddInteger (p, FC_WEIGHT, prop.weight); |
881 | |
884 | |
882 | if (FcPatternGet (p, FC_SLANT, 0, &v) != FcResultMatch) |
885 | if (FcPatternGet (p, FC_SLANT, 0, &v) != FcResultMatch) |
883 | FcPatternAddInteger (p, FC_SLANT, prop.slant); |
886 | FcPatternAddInteger (p, FC_SLANT, prop.slant); |
884 | |
887 | |
|
|
888 | if (FcPatternGet (p, FC_MINSPACE, 0, &v) != FcResultMatch) |
|
|
889 | FcPatternAddBool (p, FC_MINSPACE, 1); |
|
|
890 | |
885 | #if 0 // clipping unfortunately destroys our precious double-width-characters |
891 | #if 0 // clipping unfortunately destroys our precious double-width-characters |
886 | // clip width, we can't do better, or can we? |
892 | // clip width, we can't do better, or can we? |
887 | if (FcPatternGet (p, FC_CHAR_WIDTH, 0, &v) != FcResultMatch) |
893 | if (FcPatternGet (p, FC_CHAR_WIDTH, 0, &v) != FcResultMatch) |
888 | FcPatternAddInteger (p, FC_CHAR_WIDTH, prop.width); |
894 | FcPatternAddInteger (p, FC_CHAR_WIDTH, prop.width); |
889 | #endif |
895 | #endif |
890 | |
|
|
891 | //FcPatternAddBool (p, FC_MINSPACE, 1); |
|
|
892 | |
896 | |
893 | XftResult result; |
897 | XftResult result; |
894 | FcPattern *match = XftFontMatch (DISPLAY, DefaultScreen (DISPLAY), p, &result); |
898 | FcPattern *match = XftFontMatch (DISPLAY, DefaultScreen (DISPLAY), p, &result); |
895 | |
899 | |
896 | FcPatternDestroy (p); |
900 | FcPatternDestroy (p); |
… | |
… | |
1230 | // a non-matching font even if a better font is available :/ |
1234 | // a non-matching font even if a better font is available :/ |
1231 | |
1235 | |
1232 | FcPatternAddInteger (p, FC_PIXEL_SIZE, base_prop.height); |
1236 | FcPatternAddInteger (p, FC_PIXEL_SIZE, base_prop.height); |
1233 | FcPatternAddInteger (p, FC_WEIGHT, base_prop.weight); |
1237 | FcPatternAddInteger (p, FC_WEIGHT, base_prop.weight); |
1234 | FcPatternAddInteger (p, FC_SLANT, base_prop.slant); |
1238 | FcPatternAddInteger (p, FC_SLANT, base_prop.slant); |
|
|
1239 | FcPatternAddBool (p, FC_MINSPACE, 1); |
|
|
1240 | //FcPatternAddBool (p, FC_ANTIALIAS, 1); |
1235 | |
1241 | |
1236 | XftResult result; |
1242 | XftResult result; |
1237 | FcPattern *match = XftFontMatch (DISPLAY, DefaultScreen (DISPLAY), p, &result); |
1243 | FcPattern *match = XftFontMatch (DISPLAY, DefaultScreen (DISPLAY), p, &result); |
1238 | |
1244 | |
1239 | FcPatternDestroy (p); |
1245 | FcPatternDestroy (p); |