font->font.full_name = font->font.name = name;
font->file_name = (char *) file;
font->font.size = xftfont->max_advance_width;
+ font->font.charset = font->encoding_charset = font->repertory_charset = -1;
font->ascent = xftfont->ascent;
font->descent = xftfont->descent;
font->font.height = xftfont->ascent + xftfont->descent;
FRAME_PTR f;
struct face *face;
{
- struct xftface_info *xftface_info = malloc (sizeof (struct xftface_info));
+ struct xftface_info *xftface_info;
+#if 0
+ /* This doesn't work if face->ascii_face doesn't use an Xft font. */
+ if (face != face->ascii_face)
+ {
+ face->extra = face->ascii_face->extra;
+ return 0;
+ }
+#endif
+
+ xftface_info = malloc (sizeof (struct xftface_info));
if (! xftface_info)
return -1;
FRAME_PTR f;
struct face *face;
{
- struct xftface_info *xftface_info = (struct xftface_info *) face->extra;
-
+ struct xftface_info *xftface_info;
+
+#if 0
+ /* This doesn't work if face->ascii_face doesn't use an Xft font. */
+ if (face != face->ascii_face
+ || ! face->extra)
+ return;
+#endif
+
+ xftface_info = (struct xftface_info *) face->extra;
if (xftface_info)
{
BLOCK_INPUT;
XftDrawDestroy (xftface_info->xft_draw);
UNBLOCK_INPUT;
free (xftface_info);
- face->extra = NULL;
}
+ face->extra = NULL;
}
static unsigned