int index;
FT_Matrix matrix;
Display *display;
- int screen;
XftFont *xftfont;
};
XftColor xft_bg; /* color for face->background */
};
-static void xftfont_get_colors (struct frame *, struct face *, GC gc,
- struct xftface_info *,
- XftColor *fg, XftColor *bg);
-
-
/* Setup foreground and background colors of GC into FG and BG. If
XFTFACE_INFO is not NULL, reuse the colors in it if possible. BG
may be NULL. */
xftfont_info = (struct xftfont_info *) font;
xftfont_info->display = display;
- xftfont_info->screen = FRAME_X_SCREEN_NUMBER (f);
xftfont_info->xftfont = xftfont;
/* This means that there's no need of transformation. */
xftfont_info->matrix.xx = 0;
}
static void
-xftfont_close (struct frame *f, struct font *font)
+xftfont_close (struct font *font)
{
struct xftfont_info *xftfont_info = (struct xftfont_info *) font;
#ifdef HAVE_LIBOTF
if (xftfont_info->otf)
- OTF_close (xftfont_info->otf);
+ {
+ OTF_close (xftfont_info->otf);
+ xftfont_info->otf = NULL;
+ }
#endif
- block_input ();
- XftUnlockFace (xftfont_info->xftfont);
- XftFontClose (xftfont_info->display, xftfont_info->xftfont);
- unblock_input ();
+
+ if (xftfont_info->xftfont)
+ {
+ block_input ();
+ XftUnlockFace (xftfont_info->xftfont);
+ XftFontClose (xftfont_info->display, xftfont_info->xftfont);
+ unblock_input ();
+ xftfont_info->xftfont = NULL;
+ }
}
static int